]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: stream: ensure the SI_FL_DONT_WAKE flag is properly cleared
authorWilly Tarreau <w@1wt.eu>
Wed, 4 May 2016 08:18:37 +0000 (10:18 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 4 May 2016 08:18:37 +0000 (10:18 +0200)
commit5fb04711f081860526b1a0043778b5590c54d9c3
treec397b23cfe8e8c588f228c07d1bd2c2499c5cc87
parentef907fee12b086c8c95f726579b95f09af3b33c5
BUG/MEDIUM: stream: ensure the SI_FL_DONT_WAKE flag is properly cleared

The previous buffer space bug has revealed an issue causing some stalled
connections to remain orphaned forever, preventing an old process from
dying. The issue is that once in a while a task may be woken up because
a disabled expiration timer has been reached despite no timeout being
reached. In this case we exit very early but the SI_FL_DONT_WAKE flag
wasn't cleared, resulting in new events not waking the task up. It may
be one of the reasons why a few people have already observed some peers
connections stuck in CLOSE_WAIT state.

This bug was introduced in 1.5-dev13 by commit 798f432 ("OPTIM: session:
don't process the whole session when only timers need a refresh"), so
the fix must be backported to 1.6 and 1.5.
src/stream.c