2010年10月17日
Rails3 + Ruby1.9 で fork の不具合。
FreeBSD に rails3 の環境を Ruby1.9系で構築した際の不具合をメモ。
以下の環境で本番環境へアクセスすると fork() の不具合で passenger が error する。
About your application’s environment をクリックすると Internal Server Error となる。
httpd-error.log を確認すると以下のログが出ている。
どうも fork が原因らしいのだがどうしていいかわからず、ひとまず rails3 のままで、ruby1.9系 を ruby1.8系に下げた。rake も 1.8系で使っていたものに合わせた。
rake してみる。
abort する。
bundler を確認。
bundler が無い。
bundler を入れる。
gem が古い。。
gem を更新する。
bundler を再度入れてみる。
入った。
再度 rake してみる。
bundle install する。
再度 rake する。
rake OK!!
この後、本番環境をブラウザで確認して Internal Server Error が無くなりました。
FreeBSD + rails3 は、使えるようになりましたが ruby1.9系での fork の不具合は、不明のままです。
以下の環境で本番環境へアクセスすると fork() の不具合で passenger が error する。
FreeBSD7.2 + Rails3.0 + Ruby1.9.2 + Apache2.2.11
About your application’s environment をクリックすると Internal Server Error となる。
httpd-error.log を確認すると以下のログが出ている。
/usr/local/lib/ruby/gems/1.9/gems/passenger-2.2.15/lib/phusion_passenger/utils.rb:245:in `fork': fork() function is unimplemented on this machine (NotImplementedError)
どうも fork が原因らしいのだがどうしていいかわからず、ひとまず rails3 のままで、ruby1.9系 を ruby1.8系に下げた。rake も 1.8系で使っていたものに合わせた。
rake してみる。
% rake
(in /usr/local/www/apache22/rails/aaa)
rake aborted!
uninitialized constant Bundler
/usr/local/www/apache22/rails/aaa/Rakefile:4
(See full trace by running task with --trace)
(in /usr/local/www/apache22/rails/aaa)
rake aborted!
uninitialized constant Bundler
/usr/local/www/apache22/rails/aaa/Rakefile:4
(See full trace by running task with --trace)
abort する。
bundler を確認。
% gem list | grep -i bundler
bundler が無い。
bundler を入れる。
% gem install bundler
ERROR: Error installing bundler:
bundler requires RubyGems version >= 1.3.6
ERROR: Error installing bundler:
bundler requires RubyGems version >= 1.3.6
gem が古い。。
gem を更新する。
% gem update --system
% gem -v
1.3.7
% gem -v
1.3.7
bundler を再度入れてみる。
% gem install bundler
Successfully installed bundler-1.0.3
1 gem installed
Installing ri documentation for bundler-1.0.3...
Installing RDoc documentation for bundler-1.0.3...
Successfully installed bundler-1.0.3
1 gem installed
Installing ri documentation for bundler-1.0.3...
Installing RDoc documentation for bundler-1.0.3...
入った。
% gem list | grep -i bundler
bundler (1.0.3)
bundler (1.0.3)
再度 rake してみる。
% rake
(in /usr/local/www/apache22/rails/aaa)
Could not find abstract-1.0.0 in any of the sources
Try running `bundle install`.
(in /usr/local/www/apache22/rails/aaa)
Could not find abstract-1.0.0 in any of the sources
Try running `bundle install`.
bundle install する。
% bundle install
再度 rake する。
% rake
(in /usr/local/www/apache22/rails/aaa)
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.
Finished in 0.026635 seconds.
1 tests, 1 assertions, 0 failures, 0 errors
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.......
Finished in 0.22689 seconds.
7 tests, 10 assertions, 0 failures, 0 errors
(in /usr/local/www/apache22/rails/aaa)
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.
Finished in 0.026635 seconds.
1 tests, 1 assertions, 0 failures, 0 errors
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.......
Finished in 0.22689 seconds.
7 tests, 10 assertions, 0 failures, 0 errors
rake OK!!
この後、本番環境をブラウザで確認して Internal Server Error が無くなりました。
FreeBSD + rails3 は、使えるようになりましたが ruby1.9系での fork の不具合は、不明のままです。
【(カテゴリなし)の最新記事】
投稿者:tech|23:06