Прерывистый «преждевременный конец заголовков скриптов» с Rails 3.1 - PullRequest
3 голосов
/ 02 декабря 2011

Итак, я начал обновлять наше приложение до Rails 3.1 с Rails 3.0.9.

Оно отлично работает в среде разработки.Пришло время разместить его на промежуточном сервере, чтобы мы могли выполнить несколько полных приемочных тестов - но нет!Мы получаем ужасные страницы " Внутренняя ошибка сервера ", которые возвращаются нам половину времени, по-видимому, случайно.Мы используем Ruby 1.9.2 (p290) Apache (2) и Passenger (3.0.9).

Абсолютно ничего не записывается в файл журнала нашего приложения, когда это происходит (даже на самом низком уровне журнала).

Единственное, что записывается в журнал Apache, это следующее:

[Fri Dec 02 14:36:15 2011] [error] [client <my ip>] Premature end of script headers: <requested path>, referer: <http://domain.com/referrer>

Очевидно, что это слишком общая ошибка для меня, чтобы спрашивать "исправить это!", Но некоторые советыс того места, где я могу начать отлаживать происходящее, будет очень признателен.Это сводит меня с ума.

ОБНОВЛЕНИЕ: Эта проблема не возникает с отключенными звездочками (то есть config.assets.enabled = false) Неважно, этовсе еще делает ...

Ответы [ 2 ]

8 голосов
/ 07 декабря 2011

Я нашел причину.

Кажется, это проблема промежуточного программного обеспечения Rack.Драгоценный камень где-то вдоль цепи разбивал вещи (в моем случае это был камень Airbrake (ранее известный как Hoptoad), который может объяснить, почему нигде не было зарегистрировано ни одного исключения).Удаление заблудшего драгоценного камня или обновление его до последней версии (установка из git, а не из канонического источника rubygems) устранило его для меня.

Если кто-то еще сталкивается с этой проблемой, я бы посоветовал вам проверить эту частьвашего стека.

0 голосов
/ 02 декабря 2011

Попробуйте прочитать это и посмотреть, поможет ли это вам понять: http://htmlfixit.com/cgi-tutes/tutorial_Common_Web_dev_error_messages_and_what_they_mean.php#premature

...