[Varnish] #1700: objecthead counter incorrect or leaking on purge
Varnish
varnish-bugs at varnish-cache.org
Tue Apr 7 22:59:07 CEST 2015
#1700: objecthead counter incorrect or leaking on purge
---------------------+----------------------
Reporter: dward84 | Type: defect
Status: new | Priority: normal
Milestone: | Component: varnishd
Version: 4.0.3 | Severity: normal
Keywords: |
---------------------+----------------------
When purging an item in varnish, I would expect the objecthead counter to
be 0 (or 1?). But in practice, varnish appears to be creating a new
objecthead for each replacement of the cache item.
I suspect that this is an accounting error and not an actual leak as the
memory usage does not appear to be increasing.
See the following test:
{{{
varnishtest "objecthead leak on purge"
server s1 {
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
rxreq
txresp -body "this is a test"
} -start
varnish v1 -arg "-s malloc,1M" \
-vcl+backend {
sub vcl_recv {
if (req.method == "PURGE") {
return(purge);
}
}
sub vcl_purge {
return(synth(200, "Purged."));
}
sub vcl_backend_response {
set beresp.ttl = 1m;
set beresp.grace = 0s;
set beresp.keep = 0s;
}
} -start
client c1 {
txreq -url "/"
rxresp
txreq -req PURGE -url "/"
rxresp
expect resp.body ~ "Purged"
txreq -url "/"
rxresp
txreq -req PURGE -url "/"
rxresp
expect resp.body ~ "Purged"
txreq -url "/"
rxresp
txreq -req PURGE -url "/"
rxresp
expect resp.body ~ "Purged"
txreq -url "/"
rxresp
txreq -req PURGE -url "/"
rxresp
expect resp.body ~ "Purged"
} -run
varnish v1 -expect MAIN.n_objecthead == 1
}}}
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1700>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list