[BUG] do not release the connection slot during a retry

A bug was introduced during last queue management fix. If a server
connection fails, the allocated connection slot is released, but it
will be needed again after the turn-around. This also causes more
connections than expected to go to the server because it appears to
have less connections than real.

Many thanks to Rupert Fiasco, Mark Imbriaco, Cody Fauser, Brian
Gupta and Alexander Staubo for promptly providing configuration
and diagnosis elements to help reproduce this problem easily.
This commit is contained in:
Willy Tarreau 2008-09-14 17:40:09 +02:00
parent 1d843131d8
commit 8262d8bd7f

View File

@ -2686,10 +2686,8 @@ int process_srv(struct session *t)
}
else {
fd_delete(t->srv_fd);
if (t->srv) {
if (t->srv)
t->srv->cur_sess--;
sess_change_server(t, NULL);
}
if (!(req->flags & BF_WRITE_STATUS))
conn_err = SN_ERR_SRVTO; // it was a connect timeout.