httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Erenkrantz <jus...@erenkrantz.com>
Subject Re: 2.2 mod_http_proxy and "partial" pages
Date Wed, 07 Dec 2005 00:32:56 GMT
--On December 6, 2005 3:57:37 PM -0500 Brian Akins <bakins@web.turner.com> 
wrote:

> Can we vote on it as is? It fixes the problem, we can make it "pretty"
> later.  Of course, if someone has a better solution right now...

I just reproduced the problem with the following setup:

1) On 8080, httpd trunk / disk cache / proxy pass of /proxy to 8081
2) On 8081, httpd 1.3.x with a CGI script that writes a bit, flushes, 
sleeps for 30 seconds, and then prints another bit of data.

Fixes are in trunk as of r354628, r354630.  (Brian: you probably only need 
r354628.)

To reproduce, the 30 second window gives the ability to shut the server 
down while the response is pending - so this is easy to track down.

With these changes, we'll send out the terminating 0 chunk and then close 
the connection.  I haven't checked to see what we'll do for a C-L body, but 
I expect we'll just close the connection.

This also flagged a problem with the ap_http_input_filter in that when it's 
waiting for a chunked line and it gets a 0/EOF response (other socket 
closed) off its blocking read, it then assumes that chunk line is zero - 
meaning the body is terminated.  That's not right, but it's not terribly 
harmful - except for this corner case.  If we fix that to propogate the 
error upwards (see r354630), then...

The patches to mod_proxy_http we identified here on list do indeed work and 
are in as r354628.

With both of these patches, the disk cache filter will remove the errored 
out headers/bodies when the connection fails.

The only thing that I'm seeing is that after I do this, mod_proxy refuses 
to reconnect to the server.  I see messages in the error log as:

[Tue Dec 06 15:59:41 2005] [error] (61)Connection refused: proxy: HTTP: 
attempt to connect to 127.0.0.1:8081 (127.0.0.1) failed
[Tue Dec 06 15:59:41 2005] [error] ap_proxy_connect_backend disabling 
worker for (127.0.0.1)

IMHO, it shouldn't be so quick to disable the worker entirely.  I don't 
know if this is the problem that Jim's flagging or not.  It really should 
keep trying.  I'll leave that for someone else to fix - but, it'd probably 
need to be fixed before 2.2.1 can be considered.

I'd like to add 'convert proxy to use provider' as on the 2.4/3.0/GREEN/X 
todo list.  The whole maze of hooks and junk is just utterly confusing to 
no real purpose.  -- justin

Mime
View raw message