Forum: Ruby on Rails FastCGI - incomplete headers + 500 error

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
29eef961fdac1ecacd2fb9a56dba41e3?d=identicon&s=25 garychlin (Guest)
on 2005-12-05 11:20
(Received via mailing list)
Hi,

I know this topic has been discussed before, but I tried every solutions
still cannot solve it.

The thing is, I run my rails app in dreamhost, with FastCGI.
(rails-0.14.3+
ruby-fcgi-0.8.6 + fcgi-2.4.0)
I can start my app, but I keep hitting 500 error randomly. That is, for
the
same page, I will get 500 sometimes, but ok after reload.

This is what I got from fastcgi.crash.log

[..] asked to terminate immediately
[..] terminated by explicit exit exit

And in apache log

... FastCGI: incomplete headers (0 bytes) received from server
"/home/..../public/dispatch.fcgi"

I search all the forum on the web, and these are what I have done.

1) change public/.htaccess to RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
2) chmod 755 for dispatch.fcgi, and log directory
3) check the ruby path (#!/path/local/bin/ruby) in dispatch.fcgi
4) make sure dispatch.fcgi is not dos format (run dos2unix)

But it still doesn't work after I have done all of these.

Then I tried these

5)
http://convergentarts.com/articles/2005/08/16/new-...
    copy the lastest
fcgi_handler.rb<http://dev.rubyonrails.org/svn/rails/trunk/railtie...
lib
    but actually it's unnecessary because that file is exactly the same
as I
have in rails 0.14-3
    - still doesn't work

6) http://forum.textdrive.com/viewtopic.php?id=2972
   according to this, fcgi has some problem from gem, so I uninstall
fcgi
gem, and make ruby-fcgi-0.8.6
   from source.
   - the 500 error times reduce, but will still hit it.

7) downgrade rails to 0.13.1, no help

8) try to run dispatch.fcgi manually
   # ruby dispatch.fcgi
   I got : Status: 500 Internal Server Error
   Is that normal ? Can you run dispatch.fcgi manually?

That really drives me crazy.
I don't know what else I can try, please give me advise if you think of
any.
Thanks!

Gary
29eef961fdac1ecacd2fb9a56dba41e3?d=identicon&s=25 garychlin (Guest)
on 2005-12-05 20:45
(Received via mailing list)
Finally, I use a work-around solution before anybody can tell me a
better
answer.

I modified ruby/gems/1.8/gems/rails-0.14.3/lib/fcgi_handler.rb as below.

def exit_now_handler(signal)
     dispatcher_log :info, "asked to terminate immediately"
     ## force to restart
     dispatcher_log :info, "but we will restart"
     restart_handler(signal)
     #exit
end

For signal TERM, I force dispatch.fcgi not to exit but restart. It looks
weird but at least works for me. User will not see 500 error anymore,
and
will only need to wait a while to restart dispatch.fcgi if something
goes
wrong.

Gary
This topic is locked and can not be replied to.