[Varnish] #1180: Restart in vcl_miss increases miss count even for hits and passes.

Varnish varnish-bugs at varnish-cache.org
Tue Jul 31 23:58:22 CEST 2012


#1180: Restart in vcl_miss increases miss count even for hits and passes.
-------------------+--------------------
 Reporter:  david  |       Type:  defect
   Status:  new    |   Priority:  normal
Milestone:         |  Component:  build
  Version:  3.0.2  |   Severity:  normal
 Keywords:         |
-------------------+--------------------
 Hello,

 I believe I have located another bug in Varnish Cache. This is similar to
 and follows Trac # 965.

 My code hashes all requests based on client.ip to see if the user has a
 cached ban on their IP. If they do not, we restart the request and hash
 normally. The problem with this is that I end up with far more
 cache_misses than I had requests:

 client_conn                749         6.35 Client connections accepted

 client_req                 749         6.35 Client requests received

 cache_hit                   75         0.64 Cache hits

 cache_hitpass                0         0.00 Cache hits for pass

 cache_miss                1365        11.57 Cache misses

 s_pass                      52         0.44 Total pass




 This is the VCL that reproduces the problem:

 sub vcl_recv {
     if (req.http.X-LJ-Banned ~ "sysban-ip") {
         return (lookup);
     }
     elseif (req.restarts == 0) {
         set req.http.X-LJ-Banned = "check";
         return (lookup);
     }
 }

 sub vcl_hash {
     if (req.http.X-LJ-Banned && req.restarts > 0) {
         hash_data(client.ip);
         return (hash);
     }
 }

 sub vcl_miss {
   if (req.http.X-LJ-Banned == "check") {
       remove req.http.X-LJ-Banned;
       error 988;
   }
 }

 sub vcl_error {
   if (obj.status == 988) {
     return (restart);
   }
 }

 I left out the vcl_fetch code since it is not required to reproduce this
 problem. I assume showing more cache misses than the total number of
 requests is not intentional and is something that should be fixed.

 Warm Regards,
 David Newhall

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




More information about the varnish-bugs mailing list