From: Olivier Houchard Date: Thu, 4 Jul 2019 12:26:41 +0000 (+0200) Subject: BUG/MEDIUM: sessions: Don't keep an extra idle connection in sessions. X-Git-Tag: v2.1-dev1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cee03890889f242945e0c0128e57f01acf40a35c;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: sessions: Don't keep an extra idle connection in sessions. When deciding if we keep an idle connection in the session, check if the number of connections currently in the session is >= the max allowed, not >, or we'll keep an extra connection. This should be backported to 1.9 and 2.0. --- diff --git a/include/proto/session.h b/include/proto/session.h index eabebb85af..a80f97dc13 100644 --- a/include/proto/session.h +++ b/include/proto/session.h @@ -120,7 +120,7 @@ static inline int session_add_conn(struct session *sess, struct connection *conn /* Returns 0 if the session can keep the idle conn, -1 if it was destroyed, or 1 if it was added to the server list */ static inline int session_check_idle_conn(struct session *sess, struct connection *conn) { - if (sess->idle_conns > sess->fe->max_out_conns) { + if (sess->idle_conns >= sess->fe->max_out_conns) { /* We can't keep the connection, let's try to add it to the server idle list */ session_unown_conn(sess, conn); conn->owner = NULL;