[squid-dev] [RFC] Do not use idle dead peers

Amos Jeffries squid3 at treenet.co.nz
Wed Mar 22 04:27:06 UTC 2017

On 22/03/2017 10:27 a.m., Alex Rousskov wrote:
> Hello,
>     This Request For Comments proposes to remove a subtle Squid
> (mis)feature. If you happen to use the corresponding feature, please
> speak up to protect it! If nobody defends this feature, we may remove it
> (in order to get rid of its bad side effects).

FYI: I dont intend to defend this feature. Just to indicate that it is
still actively used - however buggy it may be. So fixing the probe
behaviour would be useful, complete removal is not an option (yet).

>From squid-users traffic is appears still quite common for
administrators to disable all of ICP, HTCP, netDB, digests, and ICMP.
Particularly for originserver peers. Without the monitor features from
Squid-2.7 the probes in question are the only way of the peer to be
detected as alive again.
 - that said, sending an active request which might be serviced better
by other peers is very dodgy.

IFAIK touching this feature will result in changes to what status code
and/or error page Squid produces.

It currently should (modulo bugs) result in connection-failed or timeout
types of final error going to the client as the victum requests actively
fail to be forwarded to the truely-dead peer.

After the change I would expect to see more being successful trnsactions
- but only in the presence of other live peers or DIRECT being
permitted. The ones which remain unsuccessful to become
no-forwarding-path errors since now no paths would be detected as usable.
 That remaining error case needs to be checked for exact status code and
how it impacts on caching hierarchies and retry logic.

Since the proposed change is so small has any of that behaviour been
tested already?

Other possibilities (if we have to) would be;
 a) to flag the situation in the FwdServer object used to construct the
destination list and ensure these peers are put as absolute last-resort
destinations instead of where they would normally be placed.

Or maybe simpler;
 b) a new peer select algorithm to find only this type of peer and add
them only if all other algorithms fail to produce a list.

> Does anybody need this "use idle dead peers" feature?

I expect everyone who has explicitly disabled all other types of
peer-ALIVE detection and where never_direct forbids bypassing the peer.


More information about the squid-dev mailing list