On Fri, 2008-03-14 at 14:58 +0000, Aurimas Mikalauskas wrote: > The next question is about Vary header. I get absolutely amazing > amount of these errors in cache.log: > > 2008/03/14 10:46:54| clientProcessHit: Vary object loop! > 2008/03/14 10:46:54| varyEvaluateMatch: Oops. Not a Vary match on > second attempt, 'http://some.url' 'accept-encoding' > 2008/03/14 10:46:55| clientProcessHit: Vary object loop! > 2008/03/14 10:46:55| varyEvaluateMatch: Oops. Not a Vary match on > second attempt, 'http://some.other.url' > 'accept-encoding="gzip,%20deflate"' > > A rough number: > # grep -c 'Vary object loop' cache.log && wc -l squid_access.log > 244816 > 1842602 squid_access.log > > Any idea what kind of loop that is and how to avoid it? 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. 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; }