[Varnish] #405: Varnish problem with purge requests
Varnish
varnish-bugs at projects.linpro.no
Sat Jan 10 23:45:21 CET 2009
#405: Varnish problem with purge requests
----------------------+-----------------------------------------------------
Reporter: anders | Owner: phk
Type: defect | Status: closed
Priority: high | Milestone:
Component: varnishd | Version: 2.0
Severity: normal | Resolution: worksforme
Keywords: |
----------------------+-----------------------------------------------------
Changes (by phk):
* status: new => closed
* resolution: => worksforme
Comment:
Sorry about the delay.
This is an interesting case, the crucial bit of the log is:
{{{
8 VCL_call c hash
8 VCL_return c hash
8 HitPass c 1525573757
8 VCL_call c pass
8 VCL_return c pass
}}}
Where your PURGE request hits a "you should pass this one" cache entry.
Under normal circumstances you would not have such an entry.
The good news is, your clients will get the right content for that URL
because Varnish will ask the backend for it, for each client, until that
cache entry expires.
The bad news is that reduces your cache-hit rate.
I am not sure we are able to properly recover using a PURGE, because by
the time we get to vcl_pass{} we don't have the object anymore, so we
cannot invalidate it.
One thing you could do, as a work-around, is to put something like this in
vcl_pass:
{{{
sub vcl_pass {
if (req.request == "PURGE") {
purge_url ("^" req.url "$");
}
}
}}}
But it is not quite perfect, because your URL will be treated like regexp.
--
Ticket URL: <http://varnish.projects.linpro.no/ticket/405#comment:4>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list