ICP not working as expected with Squid 2.0.PATCH2

From: as web server manager <webadm@dont-contact.us>
Date: Wed, 14 Oct 1998 13:07:31 +0100 (BST)

I've just started looking at Squid 2.0.PATCH2 on Solaris 2.6 (using Sun's C
compiler), and have hit a problem with ICP requests to configured peers.
Initially I built Squid with quite a lot of configure-time options enabled
and thought that they might be confusing things, but even with a very basic
version (and I did remember "make clean" first...) the problem remains.

With cache_peer lines ending " parent 8080 3130", ICP requests do not
work as expected (though the same config works with 1.NOVM.22) and instead
(with some extra logging enabled) I see e.g.

1998/10/14 12:38:46| neighborsUdpAck: Unexpected ICP_MISS for
FC63DC7ADFE328FA18F859B1A47C1974
1998/10/14 12:38:46| neighborsUdpAck: Unexpected ICP_MISS for
FC63DC7ADFE328FA18F859B1A47C1974
1998/10/14 12:38:46| neighborsUdpAck: Unexpected ICP_MISS for
FC63DC7ADFE328FA18F859B1A47C1974

cachemgr.cgi shows the peers as up and that the pings were ACKed, but also
includes them all in the count of responses that were ignored. I've looked
around in the sample config file (little altered for testing) and haven't
seen anything obvious that needs to be set or unset to make this work, and
setting icp_query_timeout 10000 made no difference. Plus one of the peers is
about 3 feet away, and connected to the same ethernet switch, so *that* one
should respond quickly even if the others were taking too long.
Unsurprisingly, all fetches are handled as DIRECT since the parents aren't
perceived as responding properly.

I saw a message on the list indicating there was an earlier problem with
similar sounding symptoms - but it looks like *that* problem is supposed to
be cured in PATCH2...

Any ideas what's wrong, either with Squid or my configuration?

[pause for thought]

Has Squid simply changed its strategy for when to us parent caches,
favouring direct fetches if permitted (and making cache hierarchies with
fallback to direct if the parents are dead a non-starter)? That seems to fit
the observations (even ICP_HITs were ignored, so it's not just parent
misses), and adding a never_direct definition while writing this has finally
forced Squid to fetch via one of its parent caches.

However, that's *not* what I want (overall), since I do not want to forbid
direct fetches e.g. when the parent caches are down, or (in due course) if I
enable the ICMP pinging option and going direct appears the fastest choice,
but I *do* want the parents to be used (even for misses) unless they're down
or other aspects of the configuration indicate that particular requests
should be routed differently.

[Basically, how do I get Squid 2 to route requests the same as Squid 1.1, as
a starting point for further development of the configuration. :-) ]

What subtlety have I missed?

                                John Line

-- 
University of Cambridge WWW manager account (usually John Line)
Send general WWW-related enquiries to webmaster@ucs.cam.ac.uk
Received on Wed Oct 14 1998 - 06:10:17 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:42:29 MST