httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <ylavic....@gmail.com>
Subject Re: mod_proxy, oooled backend connections and the keep-alive race condition
Date Thu, 05 Dec 2013 17:39:56 GMT
On Thu, Dec 5, 2013 at 5:45 PM, Yann Ylavic <ylavic.dev@gmail.com> wrote:

> On Thu, Dec 5, 2013 at 5:07 PM, Yann Ylavic <ylavic.dev@gmail.com> wrote:
>
>> On Thu, Dec 5, 2013 at 4:05 PM, Jim Jagielski <jim@jagunet.com> wrote:
>>
>>> There hardly seemed any consensus on the patch... It also
>>> seems that it adds more cycles to Apache on the front to
>>> reduce a race condition that can't really be removed.
>>>
>>
>> I don't think more cycles are added by this patch.
>> What is done is that ap_proxy_http_request() is split in two functions,
>> the prefetch part is now in ap_proxy_http_prefetch(), and
>> ap_proxy_http_prefetch()+ap_proxy_http_request() has no more cycles than
>> the previous ap_proxy_http_request().
>> Unless you consider dereferencing pointer arguments a cycles-overhead
>> compared to using local variables...
>>
>
> That's not totally true, maybe you refer to this cycles :
>
>
> +        /* Preserve the header/input brigades since they may be retried.
> */
> +        input_bb = apr_brigade_create(p, backconn->bucket_alloc);
> +        header_bb = apr_brigade_create(p, backconn->bucket_alloc);
>
> +        proxy_buckets_lifetime_transform(r, input_brigade, input_bb);
> +        proxy_buckets_lifetime_transform(r, header_brigade, header_bb);
>
> mod_proxy may need to setaside these buckets.
>

Oups, I meant, since input_brigade has already been setaside 
during prefetch, reading its buckets in
proxy_buckets_lifetime_transform() shouldn't take much time (though a few
more cycles).

Mime
View raw message