fcgi.rbのpure-rubyモード
fcgi.rbを見ていると、冒頭が
begin raise LoadError if defined?(FCGI_PURE_RUBY) && FCGI_PURE_RUBY require "fcgi.so" rescue LoadError require 'socket' require 'stringio' class FCGI 〜
と書かれているので、ひょっとしたらFCGI_PURE_RUBYを真にしたら、pure-rubyモードでFastCGIが動くんでないの? と思って早速やってみたのだが、
FCGI_PURE_RUBY = true begin raise LoadError if defined?(FCGI_PURE_RUBY) && FCGI_PURE_RUBY require "fcgi.so" rescue LoadError require 'socket' require 'stringio' class FCGI 〜
- fastcgi.crash.log
[04/Feb/2009:10:44:31 :: 1052] Dispatcher failed to catch: Bad file descriptor (Errno::EBADF) E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:66:in `write' E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:66:in `puts' E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:66:in `failsafe_response' E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:187:in `failsafe_rescue' E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:135:in `dispatch_cgi' E:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:39:in `dispatch' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:101:in `process_request' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:151:in `with_signal_handler' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:99:in `process_request' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:76:in `process_each_request' E:/ruby/lib/ruby/site_ruby/1.8/fcgi.rb:594:in `each_cgi' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:75:in `process_each_request' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:74:in `catch' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:74:in `process_each_request' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:49:in `process!' E:/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/fcgi_handler.rb:23:in `process!' E:/www/addressbook/public/dispatch.fcgi:24 unhandled dispatch error
これ以上はFastCGIのプロトコルを知らないとデバッグできないし、駄目か... orz
やはりpure-rubyで動かすことなんて考慮されている訳ないよな。