[squid-dev] [PATCH] pconn_lifetime robustness fixes

Amos Jeffries squid3 at treenet.co.nz
Tue Apr 28 14:18:32 UTC 2015


On 28/04/2015 9:56 p.m., Tsantilas Christos wrote:
> Patch applied to trunk as r14046.
> 
> 

Sorry, I got a bit delayed today digging up the reference.

I dont have any objections, since it means reverting back towards Squid
behaviour before this directive ever existed.



It is worth noting that this patch means the directive is now no longer
guaranteed to meet its primary use case:

"
From: Tsantilas Christos
Date: Mon, 01 Sep 2014 19:49:59 +0300

This limit is useful in environments with long-lived connections where
Squid configuration or environmental factors change during a single
connection lifetime. If unrestricted, some connections may last for
hours and even days, ignoring those changes that should have affected
their behavior or their existence.
"

With the reversion to the keep-alive -> close action any existing and
ongoing pipeline of requests will cause the connection to persist past
its lifetime indefinitely. For example; a pipeline of 2+ Long-Polling
requests with Connection:keep-alive will remain alive for as long as the
polling continues to have a second request pipelined before the first ends.


> On 04/27/2015 06:40 PM, Tsantilas Christos wrote:
>> If there is not any objection I will apply this patch to trunk.
>>
>>
>> On 04/15/2015 07:11 PM, Tsantilas Christos wrote:
>>> Hi all,
>>>   I am attaching which fixes pconn_lifetime feature.
>>> We had a long discussion for this feature, which is resulted to the
>>> patch r13780, but unfortunately, Measurement Factory customers reported
>>> problems:
>>>
>>> 1. Squid closed connections with partially received requests when they
>>> reached pconn_lifetime limit. We should only close _idle_ connections.
>>>
>>> 2. When connecting to Squid without sending anything for longer than
>>> pconn_lifetime, the connection hangs if the request is sent after the
>>> waiting period.
>>>
>>> 3. The connection also hangs if the initial request is starting to be
>>> transmitted but then there is a longer pause before the request is
>>> completed.
>>>
>>> Please read the patch preamble for more informations.
>>>
>>> This is a Measurement Factory project.
>>>


Amos



More information about the squid-dev mailing list