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.
Regards,
Graham
--