What I'm not seeing in those bug reports is "Connection Refused" errors.

As an aside, I bet that as of Apache 2.2.4 "SetEnv proxy-nokeepalive 1 " is no longer needed. One cause of the "error reading headers" error was that up until 2.2.4 mod_proxy wasn't checking to see whether a previously used socket was still good or not before using it for the next request. The fix is in 2.2.4. It makes sense that turning keepalives off for proxy connections works. It probably makes Apache reconnect for each request: a blank slate. That's a practical option if you've got a few dozen to a hundred requests per second.

So two possible causes of error reading response headers are:

1) Mongrel has hit 950 workers ( or whatever num_processors is ) -- unlikely, I suppose, unless there's a bug in Mongrel's tracking of worker list length.
2) Apache attempted to read/write to a bad socket

The no-keepalives probably addresses the second case. I'm not sure what it does in the first case. The way mod_proxy checks is to read a zero byte buffer off the socket. If Mongrel just closes right away I'm not sure what state the socket's in at the client ( mod_proxy ) side of things -- whether it's in close_wait or whatever -- and what a zero-byte read would return.

This is one reason why returning a 503 from Mongrel would be helpful -- it'd be nice to rule out the num_processors accept/close right off the bat, however unlikely it may be deemed.

It might be worth upgrading to Apache 2.2.6 and seeing whether that fixes the issue. It's a crap shoot, done without fully understanding the problem, but if it works, what the heck -- it makes your day better.

Anyhow, I'm really interested in the outcome of this -- we rely on mod_proxy_balancer, and I want to be sure I understand it.

Rafael G. wrote:
Jacobo Garcia escribió:
[Tue Oct 16 23:28:01 2007] [error] [client 67.142.130.19] proxy: error
reading status line from remote server bomber, referer:
http://www.google.com/search?hl=es&q=tipos+de+herramintas++++&lr=

We had this problem and solved it adding the following lines in our apache conf:

#Fix for Apache bug 39499
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1


Regards!
_______________________________________________
Mongrel-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users

begin:vcard
fn:Robert Mela
n:Mela;Robert
email;internet:[EMAIL PROTECTED]
x-mozilla-html:FALSE
version:2.1
end:vcard

_______________________________________________
Mongrel-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to