Question

Dans certains scénarios, quand il y a une erreur de code (généralement une variable mal nommée dans un partiel, mais cela pourrait aussi être autre chose), j'obtiens 504 Timeout de nginx au lieu de la trace de pile attendue (sur l'environnement de développement ).

Il semble également que les spécifications se bloquent sur les mêmes erreurs (au lieu de signaler instantanément "échoué").

Toute idée de ce que je devrais examiner ou de ce qui pourrait ne pas fonctionner avec ma configuration serait utile.

J'utilise Ruby on Rails 3.1.

Était-ce utile?

La solution

Utilisez-vous un type de détection d'exception ou de notification d'exception?Cela peut être dans votre code, dans une bibliothèque que vous référencez ou dans une gemme que vous référencez.

Si c'est le cas, désactivez-le (commentez-le, etc.) et voyez ce que vous obtenez.

Si vous utilisez production, passez à development si vous le pouvez.


Beaucoup de gens désapprouvent cette méthode de dépannage, mais l'une des autres choses que je fais parfois est de poivrer mon code avec des lignes qui s'ajoutent à un fichier d'état (au format <DATE> <TIME> - <MESSAGE>. En voyant ce qui est écrit dans le fichier après chaque requête,Je peux trouver où se situe le problème.

Vous pouvez faire quelque chose comme ceci:

def debug(filename, message)
  File.open(filename, 'a') {|f| f.write("#{Time.now} - #{message}") }
end

L'appel de debug('/tmp/log.txt','Test Message') afficherait quelque chose comme ceci:

2011-12-29 23:31:51 -0500 - Test Message
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top