On Jul 22, 7:58*pm, Josh <joshbwh...@gmail.com> wrote:
> Well, bluehost is back at it again, this time they installed 2.3.3 1
> day after 2.3.2 and put in a bunch of new gems, including rack. Fcgi
> stopped working again and here is the quick steps I took to fix it.
> Hopefully bluehost will make systemwide changes instead of making us
> all install local gems to fix their mistakes
>
> This is the workaround I cam up withhttp://jibwa.com/code-and-documentation-for-programmers/more-bluegost...
>
> Here is a ticket I entered for lighthouse... maybe the conversation
> will continue there.https://rails.lighthouseapp.com/proj...941-233-fcgi-p...
>
> On Jul 19, 6:09*pm, Josh <joshbwh...@gmail.com> wrote:
>
>
>
> > I was running into similar issues. Mine was due to an old .htaccess
> > file. I put together the info I got, plus a yet to be posted rails
> > install update for bluehost athttp://jibwa.com/code-and-documentation-for-programmers/bluehost-rail...
> > .
>
> > On Jul 15, 7:49*am, Roger Pack <rogerpack2...@gmail.com> wrote:
>
> > > Saurabh Agarwal wrote:
> > > > Hi All,
>
> > > > I am getting 500 error while deploying to bluehost , please providesome
> > > > pointer
>
> > > Pointer 1
> > > don't deploy to bluehost
> > > pointer 2
> > > if you must, then here's how I did it.http://betterlogic.com/roger/?p=368
> > > =r
> > > --
> > > Posted viahttp://www.ruby-forum.com/.
I too was affected when Bluehost upgraded to Rails 2.3.3. My app had
been running just fine frozen to Rails 2.3.2. The day Bluehost
upgraded to 2.3.3 the app broke.
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. It's still frozen
to Rails 2.3.2.
I hope this helps somebody.