On 12/06/2013 3:42 p.m., Chris Bennett wrote:
I'm using squid HEAD published by Eliezer in his repo.  I think I've
stumbled upon bug 3806 in HEAD.  While examining why a particular URL
wasn't returning a HIT, I can't work out why it isn't being served
from a SWAPOUT object.

The URL I'm testing with is:
   
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png

On first retrieval, I see:

   # tail -f /var/log/squid/{store,access}.log | grep FreeMind
   1371008045.318 RELEASE -1 FFFFFFFF CD5A8F439ACD8A3977F0F0847795490A  200 
1371008045        -1 1371108045 x-squid-internal/vary -1/0 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008045.318 RELEASE 00 00004274 51DE3AEF4895BC019E05B33023BA3B48  200 
1371008038 1299574024 1371267238 image/png 84591/84591 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008045.860 SWAPOUT 00 00004275 92C7C6C1D5F7573B0A7BA65BC03EA109  200 
1371008045 1299574024 1371267245 image/png 84591/84591 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008045.861   1049 192.168.1.54 TCP_MISS/200 85126 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
 - HIER_DIRECT/216.34.181.96 image/png

On second retrieval:

   # tail -f /var/log/squid/{store,access}.log | grep FreeMind
   1371008124.801 RELEASE -1 FFFFFFFF 69DAF69FF4C0F37BBC7B22CC2CCEF05B  200 
1371008124        -1 1371108124 x-squid-internal/vary -1/0 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008124.801 RELEASE 00 00004276 7E9F2FBE6EC702E9731D502BF431A5E2  200 
1371008073 1299574024 1371267273 image/png 84591/84591 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008126.337 SWAPOUT 00 00004277 92C7C6C1D5F7573B0A7BA65BC03EA109  200 
1371008124 1299574024 1371267324 image/png 84591/84591 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
   1371008126.337   2069 192.168.1.54 TCP_MISS/200 85126 GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
 - HIER_DIRECT/216.34.181.96 image/png


With debug_options 22,3 enabled, I see:
   2013/06/12 13:06:08.932 kid1| ctx: exit level  0
   2013/06/12 13:06:08.932 kid1| refresh.cc(540) getMaxAge: getMaxAge: 
'http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png'
   2013/06/12 13:06:09.194 kid1| ctx: enter level  0: 
'http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png'
   2013/06/12 13:06:09.194 kid1| refresh.cc(247) refreshCheck: refreshCheck: 
'http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png'
   2013/06/12 13:06:09.194 kid1| refresh.cc(262) refreshCheck: refreshCheck: 
Matched '\.png$ 15600000 90%% 15600540'
   2013/06/12 13:06:09.194 kid1| refresh.cc(264) refreshCheck:   age:  61
   2013/06/12 13:06:09.194 kid1| refresh.cc(266) refreshCheck:   check_time: 
Wed, 12 Jun 2013 03:37:09 GMT
   2013/06/12 13:06:09.194 kid1| refresh.cc(268) refreshCheck:   
entry->timestamp: Wed, 12 Jun 2013 03:36:08 GMT
   2013/06/12 13:06:09.194 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 
1371267368 >= check_time 1371008229
   2013/06/12 13:06:09.194 kid1| refresh.cc(288) refreshCheck: Staleness = -1
   2013/06/12 13:06:09.194 kid1| refresh.cc(373) refreshCheck: refreshCheck: 
object isn't stale..
   2013/06/12 13:06:09.194 kid1| refresh.cc(375) refreshCheck: refreshCheck: 
returning FRESH_EXPIRES
   2013/06/12 13:06:09.194 kid1| http.cc(482) cacheableReply: YES because HTTP 
status 200

With 'curl -v', I see:
   > GET 
http://freemind.sourceforge.net/wiki/images/c/c8/FreeMind-computer-knowledge-080.png
 HTTP/1.1
   > User-Agent: curl/7.24.0 (x86_64-redhat-linux-gnu) libcurl/7.24.0 
NSS/3.14.2.0 zlib/1.2.5 libidn/1.24 libssh2/1.4.1
   > Host: freemind.sourceforge.net
   > Accept: */*
   > Proxy-Connection: Keep-Alive
   >
   < HTTP/1.1 200 OK
   < Server: Apache/2.2.15 (CentOS)
   < Vary: Host, Accept-Encoding
   < Last-Modified: Tue, 08 Mar 2011 08:47:04 GMT
   < ETag: "14a6f-49df4a80f5200"
   < Accept-Ranges: bytes
   < Cache-Control: max-age=259200
   < Expires: Sat, 15 Jun 2013 03:38:40 GMT
   < Content-Type: image/png
   < Content-Length: 84591
   < Date: Wed, 12 Jun 2013 03:38:40 GMT
   < X-Varnish: 508989350
   < Age: 0
   < X-Cache: MISS from neo.zoran.cgb
   < X-Cache-Lookup: MISS from neo.zoran.cgb:3128
   < Via: 1.1 varnish, 1.1 neo.zoran.cgb (squid/3.HEAD-20130520-r12839)
   < Connection: keep-alive

Does this sound like bug id 3806
(http://bugs.squid-cache.org/show_bug.cgi?id=3806)?

VERY likely you have. Unfortunately we are all stumped about this one.

  If so, is anyone
working on trying to solve it?

Alexs' comment #7 on the bug report covers the details of what needs to be done to figure it out. Sadly none of the current dev team know enough about the Vary handling to debug it quickly and lack time to track it down.


If not, can anyone suggest why the requested object is not returning a
hit on subsequent request?  I am seeing hits for that same URL when
using squid-2.6.STABLE21-6.el5.

2.6/2.7 are known to work okay. However the code there is often very diffferent. 3.2 at least has a different memory storage mechanism for the cache, and different abilities for handling larger objects, and no collapsed forwarding which could be hiding issues on concurrent traffic.

Amos

Reply via email to