From 34ce7d075ae3d5d5c876de4ad76bdf0e358772df Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 10 Jul 2019 14:06:33 +0200 Subject: [PATCH] BUG/MINOR: server: Be really able to keep "pool-max-conn" idle connections The maximum number of idle connections for a server can be configured by setting the server option "pool-max-conn". But when we try to add a connection in its idle list, because of a wrong comparison, it may be rejected because there are already "pool-max-conn - 1" idle connections. This patch must be backported to 2.0 and 1.9. --- include/proto/server.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/proto/server.h b/include/proto/server.h index d0b925c56..10c55a94e 100644 --- a/include/proto/server.h +++ b/include/proto/server.h @@ -256,7 +256,7 @@ static inline int srv_add_to_idle_list(struct server *srv, struct connection *co int retadd; retadd = _HA_ATOMIC_ADD(&srv->curr_idle_conns, 1); - if (retadd >= srv->max_idle_conns) { + if (retadd > srv->max_idle_conns) { _HA_ATOMIC_SUB(&srv->curr_idle_conns, 1); return 0; }