]> git.ipfire.org Git - thirdparty/haproxy.git/commit
[BUG] do not dequeue requests on a dead server
authorWilly Tarreau <w@1wt.eu>
Sun, 30 Nov 2008 20:51:58 +0000 (21:51 +0100)
committerWilly Tarreau <w@1wt.eu>
Sun, 7 Dec 2008 22:49:07 +0000 (23:49 +0100)
commit07dc95abf17c9490a3498aa66fb2e43040b2cb41
tree056565f42369c3a9c8eae9953ef1c02484fe2236
parentfe651a50d605b812d381c1a57b361c8a65c60c1c
[BUG] do not dequeue requests on a dead server

Kai Krueger reported a problem when a server goes down with active
connections. A lot of connections were drained by that server. Kai
did an amazing job at tracking this bug down to the dequeuing
mechanism which forgets to check the server state before allowing
a request to be sent to a server.

The problem occurs more often with long requests, which have a chance
to complete after the server is completely marked down, and to find
requests in the global queue which have not yet been fetched by other
servers.

The fix consists in ensuring that a server is up before sending it
any new request from the queue.
(cherry picked from commit 80b286a064eaec828b7fd10e98e3f945e8b244f3)
(cherry picked from commit 2e5e0d2853f059a1d09dc81fdbbad9fd03124a98)
include/proto/queue.h