• Dridi Boukelmoune's avatar
    hash: Close an expiry loophole · 08d4e804
    Dridi Boukelmoune authored
    The opposite of 'EXP_Ttl(req, oc) > req->t_req' should not have been
    'EXP_Ttl(NULL, oc) < req->t_req'. If we somehow enter the lookup when
    the two operands are equal, the objcore suffers a phenomenon known as
    Schrödinger's expiry.
    
    The chances of running into this scenario range from epsilon to 100%.
    
    Because 't_req' is stable across restarts, a soft purge will reliably
    trigger this case.
    
    Test case by Alve Elde who first demonstrated the problem.
    08d4e804
Name
Last commit
Last update
..
varnishadm Loading commit data...
varnishd Loading commit data...
varnishhist Loading commit data...
varnishlog Loading commit data...
varnishncsa Loading commit data...
varnishstat Loading commit data...
varnishtest Loading commit data...
varnishtop Loading commit data...
Makefile.am Loading commit data...
flint.lnt Loading commit data...