From: Amaury Denoyelle Date: Fri, 22 Jan 2021 18:37:44 +0000 (+0100) Subject: MINOR: backend: search conn in idle/safe trees after available X-Git-Tag: v2.4-dev8~75 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1399d695c0f5abfedd00576a93971512f744068c;p=thirdparty%2Fhaproxy.git MINOR: backend: search conn in idle/safe trees after available If no matching connection is found on available, check on idle/safe trees for a matching one. This is needed because now idle connections can be differentiated from each other. If only the available list was checked because not empty, but did not contain a matching connection, we could miss matching entries in idle or safe trees. --- diff --git a/src/backend.c b/src/backend.c index 7d256de368..d561b821c4 100644 --- a/src/backend.c +++ b/src/backend.c @@ -1288,8 +1288,9 @@ int connect_server(struct stream *s) if (srv_conn) reuse = 1; } + /* if no available connections found, search for an idle/safe */ - else if (srv->max_idle_conns && srv->curr_idle_conns > 0) { + if (!srv_conn && srv->max_idle_conns && srv->curr_idle_conns > 0) { const int not_first_req = s->txn && s->txn->flags & TX_NOT_FIRST; const int idle = srv->curr_idle_nb > 0; const int safe = srv->curr_safe_nb > 0;