[Varnish] #1635: Completed bans keep accumulating

Varnish varnish-bugs at varnish-cache.org
Mon Oct 19 10:12:13 CEST 2015


#1635: Completed bans keep accumulating
----------------------+--------------------
 Reporter:  Sesse     |       Owner:
     Type:  defect    |      Status:  new
 Priority:  normal    |   Milestone:
Component:  varnishd  |     Version:  trunk
 Severity:  normal    |  Resolution:
 Keywords:  lurker    |
----------------------+--------------------

Comment (by phk):

 "so am I correct in assuming that bans can only be deleted once there are
 no older objects in the cache? In which case perhaps the behaviour I'm
 observing, and others are observing above, is expected? "

 Its slightly more complicated.

 We can only delete a ban after all *older* cached objects have been tested
 against it.

 If the ban contains any "req.*" tests, that can only happen when somebody
 gets a cache-hit on that object.

 If the ban is composed entirely of "obj.*" tests, the ban-lurker should be
 able to "wash" it against all the cached objects (slowly, over time) and
 the ban will be marked 'completed', the capital 'C' you see in the output.

 However, because of the way we lock the ban-list, we cannot actually
 remove the completed ban from the list if it is somewhere in the middle,
 we can only delete the last ban on the list.

 So if the last ban is using req.* and stuck until either the objects that
 hasn't been checked yet expire or get a cache-hit, you can see a lot of
 these 'Completed' bans accumulate in the list.

 This is not optimal, but we havn't found a performance-cheap way of
 solving this issue.

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1635#comment:10>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator



More information about the varnish-bugs mailing list