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 eabebb8..a80f97d 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -120,7 +120,7 @@
/* 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;