Re: [squid-users] Vary object loop

From: Adrian Chadd <adrian@dont-contact.us>
Date: Sat, 15 Mar 2008 11:20:00 +0900

On Fri, Mar 14, 2008, Alex Rousskov wrote:

> I am not sure at all, but based on a very quick look at the code, it
> feels like the messages you are getting may not indicate any problems.
> The attached patch disables these messages at debugging level 1.
>
> If you receive a more knowledgeable answer, please disregard this
> comment and the patch.

I think it actually is a bug in the Vary handling in Squid-3.
The condition:

    if (!has_vary || !entry->mem_obj->vary_headers) {
        if (vary) {
            /* Oops... something odd is going on here.. */

.. needs to be looked at. In fact, I'd suggest adding some further debugging
to see what the Vary headers were and then we can at least attempt to
determine why the vary processing logic is busted.

Adrian

>
> Thank you,
>
> Alex.
>

> Do not warn about Vary loops and mismatches.
>
> I have a feeling that a lot of Vary-handling code has too-high debugging
> levels, but it is not clear to me whether those loops are dangerous
> enough to warrant level-1 debugging. This needs to be investigated
> before committing this change.
>
> Index: src/client_side.cc
> ===================================================================
> RCS file: /cvsroot/squid/squid3/src/client_side.cc,v
> retrieving revision 1.779
> diff -u -r1.779 client_side.cc
> --- src/client_side.cc 26 Feb 2008 21:49:34 -0000 1.779
> +++ src/client_side.cc 14 Mar 2008 21:11:52 -0000
> @@ -3274,7 +3274,7 @@
> /* Oops.. we have already been here and still haven't
> * found the requested variant. Bail out
> */
> - debugs(33, 1, "varyEvaluateMatch: Oops. Not a Vary match on second attempt, '" <<
> + debugs(33, 2, "varyEvaluateMatch: Oops. Not a Vary match on second attempt, '" <<
> entry->mem_obj->url << "' '" << vary << "'");
> return VARY_CANCEL;
> }
> Index: src/client_side_reply.cc
> ===================================================================
> RCS file: /cvsroot/squid/squid3/src/client_side_reply.cc,v
> retrieving revision 1.154
> diff -u -r1.154 client_side_reply.cc
> --- src/client_side_reply.cc 16 Feb 2008 17:42:27 -0000 1.154
> +++ src/client_side_reply.cc 14 Mar 2008 21:11:52 -0000
> @@ -534,7 +534,7 @@
>
> case VARY_CANCEL:
> /* varyEvaluateMatch found a object loop. Process as miss */
> - debugs(88, 1, "clientProcessHit: Vary object loop!");
> + debugs(88, 2, "clientProcessHit: Vary object loop!");
> processMiss();
> return;
> }

-- 
- Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support -
- $25/pm entry-level VPSes w/ capped bandwidth charges available in WA -
Received on Fri Mar 14 2008 - 20:04:56 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Apr 01 2008 - 13:00:05 MDT