Приложение Rails случайно вылетает с ошибкой «Преждевременный конец заголовков скриптов» - PullRequest
13 голосов
/ 05 мая 2009

Я размещаю приложение Ruby on Rails 2.0.2 на DreamHost. Он находится на сервере Apache 2, работающем поверх Phusion Passenger.

Приложение часто возвращает ошибку 500 «Приложение Rails не удалось правильно запустить», но в случайные моменты времени. Похоже, это происходит, когда приложение находится под высокой нагрузкой, хотя я не могу это подтвердить. Он получает только около 2000 просмотров страниц в день, поэтому я не думаю, что загрузка действительно должна быть проблемой.

Журналы Apache соотносят эти 500 ответов с ошибкой: «Преждевременный конец заголовков скриптов». Просто глядя на журналы в 9 утра сегодня, ошибка появляется так часто, как три или четыре раза в минуту. Это явно недопустимо.

Реже приложение отбрасывает страницу Phusion Passenger с трассировкой стека и ошибкой «Сломанный канал».

В журналах Rails нет ни одной из этих ошибок.

Это происходит как на промежуточных, так и на живых сайтах, размещенных на DreamHost, но я не могу скопировать его на локальный сервер разработки.

Итак, я думаю, что реальный вопрос в следующем: С чего мне начать отладку этой проблемы?

Ответы [ 2 ]

9 голосов
/ 07 мая 2009

Оказывается, я просто ударил по моей памяти на общем сервере DreamHost.

Я запускал несколько приложений Rails под одной учетной записью, многие из них только для тестирования и создания прототипов. Rails использует много памяти, и поэтому я быстро достигал своего выделения. Служба поддержки сказала мне, что «я проверил наши журналы, и он уничтожил один из ваших процессов ruby ​​за 2325 раз» Упс.

Решение: старайтесь не запускать Rails в общей среде, если можете помочь. Я собираюсь в ближайшее время переключить хотя бы одно из моих приложений на хост VPS.

1 голос
/ 05 мая 2009

Вы работаете с последней версией пассажира (2.2.2 на момент написания). У меня было несколько ошибок, но большинство (если не все) исчезли после обновления моей пассажирской установки.

Если это не ответ, вы всегда можете попробовать обновить версию rails до 2.3 и посмотреть, не исчезнет ли проблема.

...