• Nils Goroll's avatar
    properly maintain the obans list when pruning the ban list tail · 88c2b20a
    Nils Goroll authored
    background: When the ban lurker has finished working the bottom of the
    ban list, conceptually we mark all bans it has evaluated as completed
    and then remove the tail of the ban list which has no references any
    more.
    
    Yet, for efficiency, we first remove the tail and then mark only those
    bans completed, which we did not remove. Doing so depends on knowing
    where in the (obans) list of bans to be completed is the new tail of
    the bans list after pruning.
    
    5dd54f83 was intended to solve this,
    but the fix was incomplete (and also unnecessarily complicated): For
    example when a duplicate ban was issued, ban_lurker_test_ban() could
    remove a ban from the obans list which later happens to become the new
    ban tail.
    
    We now - hopefully - solve the problem for real by properly cleaning
    the obans list when we prune the ban list.
    
    Fixes #3006
    Fixes #2779
    Fixes #2556 for real (5dd54f83 was
    incomplete)
    
     Conflicts:
    	bin/varnishd/cache/cache_ban_lurker.c
    88c2b20a
Name
Last commit
Last update
.circleci Loading commit data...
.github Loading commit data...
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...