L'application Rails se bloque de manière aléatoire avec l'erreur & # 8220; Fin prématurée des en-têtes de script & # 8221;

StackOverflow https://stackoverflow.com/questions/824783

Question

J'héberge une application Ruby on Rails 2.0.2 sur DreamHost. C'est sur un serveur Apache 2, fonctionnant au dessus de Phusion Passenger.

L'application renvoie souvent une erreur 500 "L'application de Rails n'a pas pu démarrer correctement", mais à des moments aléatoires. Cela semble se produire lorsque l'application est soumise à une charge plus élevée, bien que je ne puisse pas le confirmer. Il ne reçoit qu'environ 2 000 pages vues par jour, donc je ne pense pas que le chargement soit vraiment un problème.

Les journaux Apache mettent en corrélation ces 500 réponses avec l’erreur suivante: "Fin prématurée des en-têtes de script". En regardant les journaux à 9 heures aujourd'hui, l'erreur apparaît aussi souvent que trois ou quatre fois par minute. Ceci est clairement inacceptable.

Moins fréquemment, l’application lance une page Phusion Passenger avec une trace de pile et l’erreur "Tube cassé".

Les journaux Rails ne répertorient aucune de ces erreurs.

Cela se produit à la fois sur les sites intermédiaires et actifs hébergés sur DreamHost, mais je ne peux pas le répliquer sur un serveur de développement local.

La vraie question est donc la suivante: Où puis-je commencer à déboguer ce problème?

Était-ce utile?

La solution

Il s’est avéré que j’étais en train d’atteindre mon plafond de mémoire sur le serveur partagé DreamHost.

J'utilisais plusieurs applications Rails sous un même compte, beaucoup d'entre elles uniquement pour les tests et le prototypage. Rails utilise beaucoup de mémoire et j'ai donc rapidement atteint mon allocation. Le support m'a dit que "j'ai vérifié nos journaux et que l'un de vos processus de traitement du rubis a été tué 2325 fois au cours des trois derniers jours". Oups.

La solution: essayez de ne pas exécuter Rails dans un environnement partagé, si vous pouvez l’aider. Je vais bientôt passer au moins une de mes applications à un hôte VPS.

Autres conseils

Utilisez-vous la dernière version de passagers (2.2.2 au moment de la rédaction). J'ai moi-même eu quelques erreurs, mais la plupart (sinon toutes) ont disparu après la mise à niveau de l'installation de mon passager.

Si ce n'est pas la solution, vous pouvez toujours essayer de mettre à jour votre version de rails vers la version 2.3 et voir si le problème persiste.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top