Hostmonster 500 error/dispatch Problem

The following error was found in my fastcgi.crash.log

[23/Jul/2009:10:00:28 :: 23983] Dispatcher failed to catch: undefined
method `read’ for class `FCGI::Stream’ (NameError) /usr/lib/ruby/gems/
1.8/gems/rack-1.0.0/lib/rack/handler/fastcgi.rb:7
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
103:in `process_request’ /home/username/rails/app/vendor/rails/
railties/lib/fcgi_handler.rb:153:in `with_signal_handler’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
101:in `process_request’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
78:in `process_each_request’
/usr/lib/ruby/gems/1.8/gems/fcgi-0.8.7/lib/fcgi.rb:117:in
`session’ /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.7/lib/fcgi.rb:104:in
`each_request’
/usr/lib/ruby/gems/1.8/gems/fcgi-0.8.7/lib/fcgi.rb:36:in `each’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
77:in `process_each_request’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
76:in `catch’ /home/username/rails/app/vendor/rails/railties/lib/
fcgi_handler.rb:76:in `process_each_request’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
51:in `process!’
/home/username/rails/app/vendor/rails/railties/lib/fcgi_handler.rb:
23:in `process!’
dispatch.fcgi:24
unhandled dispatch error

Josh’s message got me on the right track to a fix, but didn’t quite
work. I believe this is in fact a bug in the rack gem.

Step 1: Install the rack gem locally

gem install rack

Step 2: Fix the bug in the locally installed rack gem

Edit /path/to/local/gems/rackrack-1.0.0/lib/rack/handler/fastcgi.rb.
Move line #7 to just below the definition of the read method. It
should look as follows.

class FCGI::Stream
def read(n, buffer=nil)
buf = _rack_read_without_buffer n
buffer.replace(buf.to_s) if buffer
buf
end
alias _rack_read_without_buffer read
end

You can determine the path to your locally installed gems by running
‘gem env’. Look for ‘INSTALLATION DIRECTORY’.

Step 3: Tell your rails app to use the local gem instead of the system
gem

Edit the environment.rb file for your application and add the
following to the top.

ENV[‘GEM_PATH’] = ‘/path/to/local/ruby/gems’

Use the path exactly as listed next to ‘INSTALLATION DIRECTORY’ when
you run ‘gem env’. In my case, it was /home/username/ruby/gems. You
should not need to specify the path to the global system gems.

Step 4: Kill any running dispatch.fcgi processes

killall -u username dispatch.fcgi

Step 5: Try to access your app

At this point my rails app started with no problem.

Got from : http://aspn.activestate.com/ASPN/Mail/Message/ruby-talk/3732081

One response to “Hostmonster 500 error/dispatch Problem”

  1. Someone says:

    I host my website with hostmonster too. But lately I’ve been havin slower page loading speeds, and I can’t find how I can contact them. Is anyone else also having problems?

Leave a Reply