]> git.kaiwu.me - 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>
Mon, 1 Dec 2008 09:39:13 +0000 (10:39 +0100)
commit51256396b1c1b755aa8830f64ff160c62bb63bd0
treee13c1ac676767a300f4e4b0e4374265cd63161b2
parent1301be011141b31a1f4d37d59a1693d3c2eec93a
[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)
include/proto/queue.h