On 11/10/2010 10:31 PM, Jim Jagielski wrote:
> On Nov 10, 2010, at 9:25 AM, Graham Leggett wrote:
> 
>> On 10 Nov 2010, at 4:13 PM, Plüm, Rüdiger, VF-Group wrote:
>>
>>> The core input filter in ap_core_input_filter which is used to read
>>> the response from the backend creates the socket bucket from the conn rec
>>> bucket allocator. So the used bucket allocator must live as long
>>> as the conn rec of the backend connection lives.
>>> And the conn rec of the backend connection lives longer then one request
>>> and possibly longer than the frontend connection if the backend has 
>>> keepalive
>>> enabled, in fact it is reused by the next frontend request that leases the
>>> backend connection from the backend connection pool.
>> In that case, the way to fix this would be to insert the frontend conn_rec's 
>> allocator into the backend conn_rec when we take it out of the pool, and 
>> then remove this allocator again when we're finished and place the 
>> connection back into the pool.
>>
>> This way, all our buckets would live as long as the frontend allocator, and 
>> we would be free to return the backend conn_rec back to the pool at any time.
> 
> +1... Seems the only way to address this.
> 

As long as underlying connection filters like mod_ssl do not buffer any buckets 
that need to used
later once we get the connection back from the pool. I know I play devils 
advocate here :-).

Regards

Rüdiger

Reply via email to