[Varnish] #1659: ban lurker doesn't purge all effected objects

Varnish varnish-bugs at varnish-cache.org
Wed Jan 14 14:47:56 CET 2015


#1659: ban lurker doesn't purge all effected objects
-----------------------+----------------------
 Reporter:  varnish@…  |       Type:  defect
   Status:  new        |   Priority:  normal
Milestone:             |  Component:  varnishd
  Version:  3.0.6      |   Severity:  normal
 Keywords:             |
-----------------------+----------------------
 Hi *,

 couple months ago I had a purging problem, where it seems that not all
 objects where purged by the ban lurker thread. Today this issue happens
 again and I had the chance to capture some logs and requests.

 Story:
 Our customer purges varnish every night at 1pm CET, which he does with a
 PURGE-Request which is handled by the following vcl:
 {{{
 if (req.url ~ "\*") {
             ban("obj.http.X-Purge-URL ~ " + req.url + " && obj.http.X
 -Purge-Host ~ " + req.http.host);
             error 200 "Purge added";
 }
 }}}

 This request results in the following ban entry:
 {{{
 1421192472.105130     0G        obj.http.X-Purge-URL ~ /* && obj.http.X
 -Purge-Host ~ domain.tld
 }}}

 I know, the regex "/*" is some kind of weird, but it shoul match every URL
 since the URL starts with a "/".

 But now we got the problem, that not all URLs are purged, following a
 varnishlog trace for an object which had have purged last night:
 {{{
   420 SessionOpen  c X.X.X.X 38584 X.X.X.X:80
   420 ReqStart     c X.X.X.X 38584 2713433276
   420 RxRequest    c HEAD
   420 RxURL        c /en-gb/printed-denim-skirt-with-leather-trim.html
   420 RxProtocol   c HTTP/1.1
   420 RxHeader     c User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu)
 libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
   420 RxHeader     c Host: www.domain.tld
   420 RxHeader     c Accept: */*
   420 RxHeader     c X-DEBUG:XXXXX
   420 VCL_call     c recv lookup
   420 VCL_call     c hash
   420 Hash         c /en-gb/printed-denim-skirt-with-leather-trim.html
   420 Hash         c www.domain.tld
   420 VCL_return   c hash
   420 Hit          c 2700988225
   420 VCL_call     c hit deliver
   420 VCL_call     c deliver deliver
   420 TxProtocol   c HTTP/1.1
   420 TxStatus     c 200
   420 TxResponse   c OK
   420 TxHeader     c Server: Apache
   420 TxHeader     c P3p: CP="CAO PSA OUR"
   420 TxHeader     c X-Cache-Debug: 1
   420 TxHeader     c X-Cache-Tags: catalog_product_327804
   420 TxHeader     c Vary: Accept-Encoding
   420 TxHeader     c Content-Type: text/html; charset=UTF-8
   420 TxHeader     c X-Purge-URL: /en-gb/printed-denim-skirt-with-leather-
 trim.html
   420 TxHeader     c X-Purge-Host: www.domain.tld
   420 TxHeader     c X-Orig-Query-String:
   420 TxHeader     c X-Striped-Query-String:
   420 TxHeader     c Cache-Control: no-store, no-cache, must-revalidate,
 post-check=0, pre-check=0
   420 TxHeader     c Pragma: no-cache
   420 TxHeader     c Expires: Mon, 31 Mar 2008 10:00:00 GMT
   420 TxHeader     c Date: Wed, 14 Jan 2015 12:42:02 GMT
   420 TxHeader     c X-Varnish: 2713433276 2700988225
   420 TxHeader     c Age: 74851
   420 TxHeader     c Via: 1.1 varnish
   420 TxHeader     c Connection: keep-alive
   420 TxHeader     c X-Cache: HIT
   420 TxHeader     c X-Cache-Hits: 12
   420 TxHeader     c X-BE: dir_domain_tld_random
   420 TxHeader     c X-BE-Name:
   420 TxHeader     c X-Lifetime: 11548.540
   420 Length       c 0
   420 ReqEnd       c 2713433276 1421239322.510934830 1421239322.511025429
 0.000041962 0.000051498 0.000039101
 }}}

 The indicator for myself is the Age header of the object.

 Some background infos, normally the varnish cache holds around 300.000
 objects when the nightly purging starts. It takes about 30 minutes to
 purge all objects from the cache.

 Give me a hint if you need some more information.

 Best regards,
 Martin

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1659>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator



More information about the varnish-bugs mailing list