Weird situation with unexpected 206 from the backend, hit-for-pass and default_ttl

Tollef Fog Heen tfheen at varnish-software.com
Mon Mar 1 10:32:34 CET 2010


]] Thomas Parmelan 

|   - seeing as wrong as this backend answer is, I think it shouldn't be
|     dealt with "normally" by varnish, it would me more interesting to
|     let the next request have its chance to populate the cache with a
|     valid (200) answer, in order to keep the following requests being
|     able to be served from the cache. Is this something that should be
|     changed in varnish, or in the vcl (and how) ?

We generally try to avoid guessing in the C code, so I think this should
be left for VCL.

|   - the TTL used for the HitPass object seems to be the default_ttl (-t
|     86400 in my setup); I tried to keep it low (0s or 10s) from the vcl
|     config, like this :
| 
|     sub vcl_fetch {
|         if (!obj.cacheable) {
|                 set obj.ttl = 0s;
|                 return (pass);
|         }
| 	/* ... */
|     }

What happens if you set obj.cacheable to true and ttl to 1s if the
response is a 206?  Does that work?

|   - I also tried to purge the hit-for-pass culprit with the CLI (purge
|     req.host == the.host && req.url == /the/url), but it didn't work
|     (the object was still there after). Any idea how to purge such
|     objects ? Is this a bug ? 

According to phk on IRC, this should work and it not working is a bug.

If you have a chance to reproduce this in a test environment with both
2.0.6 and trunk, that'd be appreciated.

-- 
Tollef Fog Heen 
Redpill Linpro -- Changing the game!
t: +47 21 54 41 73



More information about the varnish-misc mailing list