From: nreckart Date: 2009-07-24T02:00:06+09:00 Subject: Re: getting 500 error while deploying to bluehost please hel On Jul 22, 7:58 pm, Josh 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/projects/8994/tickets/2941-233-fcgi-p... > > On Jul 19, 6:09 pm, Josh 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 wrote: > > > > Saurabh Agarwal wrote: > > > > Hi All, > > > > > I am getting 500 error while deploying to bluehost , please provide some > > > > 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.