httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: mod_proxy race condition bug #37770
Date Sat, 20 Sep 2008 13:30:22 GMT

On Sep 19, 2008, at 5:24 PM, Adam Woodworth wrote:

> Now that we're using 2.2.9 in the field, I've noticed a problem with
> r657443, or at least it's a problem for our application.
>
> r657443 added code to shutdown the connection w/o any response with an
> EOC in the case that a second (or later) request on a keepalive
> connection failed to get a response from the backend.
>
> The problem with this is that it will also do this for connections to
> the backend that timed out.  For our application, we want actual
> timeouts to be caught as normal and kicked back through to the client
> as a 50x error.
>
> I made a simple one line patch to our copy of httpd 2.2.9 and it seems
> to work.  I just check the rc code to see if it's a timeout error and
> if so skip the new code from r657443.
>
> I thought I'd raise this to the httpd developers -- do you think it's
> something that should be part of the httpd code?  Having a timeout to
> the backend causing the client to re-request seems not so good.
>

Agreed. Good catch.

>
> *** mod_proxy_http.c.bak	Thu Sep 18 20:42:05 2008
> --- mod_proxy_http.c	Fri Sep 19 15:39:32 2008
> ***************
> *** 1376,1382 ****
>               * seamonkey only display an empty page in this case  
> and do
>               * not do a retry.
>               */
> !             if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives) {
>                  apr_bucket *eos;
>
>                  ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
> --- 1376,1385 ----
>               * seamonkey only display an empty page in this case  
> and do
>               * not do a retry.
>               */
> !             if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives &&
> rc != APR_TIMEUP) {
>                  apr_bucket *eos;
>
>                  ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
>
>
>
> On Mon, Jun 2, 2008 at 4:21 PM, Ruediger Pluem <rpluem@apache.org>  
> wrote:
>>
>>
>> On 06/02/2008 10:11 PM, Adam Woodworth wrote:
>>>>
>>>> From a usage standpoint I have no real preference other than I  
>>>> need to
>>>
>>> be able to configure it from httpd.conf on a per-host basis. :)
>>>
>>> What is a worker specific property?
>>
>> All the properties you put behind ProxyPass / balancermember or via  
>> proxyset
>> in a block
>> like
>>
>> <Proxy http://www.somebackend.com/blah>
>> </Proxy>
>>
>> Regards
>>
>> RĂ¼diger
>>
>>
>


Mime
View raw message