httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Woodworth" <mirkp...@gmail.com>
Subject Re: mod_proxy race condition bug #37770
Date Fri, 19 Sep 2008 21:24:34 GMT
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.


*** 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