pid=xxxxx file=ext/apache2/Hooks.cpp:645
JSで処理待ちを表示する処理で、処理完了を待たずにJSの表示が消える現象が発生。
ApacheのErrorログには下記メッセージが記録されていました。
[ pid=xxxxx file=ext/apache2/Hooks.cpp:645 time=2009-09-10 20:25:43.542 ]: The backend application (process xxxxx) did not send a valid HTTP response; instead, it sent n othing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.
原因はpassengerのbugでした。
現時点で最新版の2.2.5でfixされてます。
http://blog.phusion.nl/2009/09/01/phusion-passenger-2-2-5-released/
[Apache] Fixed I/O timeouts for communication with backend processes Got rid of the code for enforcing I/O timeouts when reading from or writing to a backend process. This caused more problems than it solved.
さっそくpassengerをupdate。
update方法は公式を見ても見当たりませんでしたが(探せてないだけ?)、下記方法でアップデートできました。
# gem install passenger # passenger-install-apache2-module apacheのconfファイルを変更。 ※下記部分を既存のものと置き換える ※パスは環境によって異なります LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5 PassengerRuby /usr/bin/ruby
インストールと同じ手順ですね。
環境絡みのバグはいつも解決に時間がかかります。