From: Christopher Faulet Date: Wed, 1 Jul 2020 16:56:30 +0000 (+0200) Subject: BUG/MINOR: backend: Remove CO_FL_SESS_IDLE if a client remains on the last server X-Git-Tag: v2.2.0~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e91a526c8fe7bf3b655057d41e8b72a2011b7046;p=thirdparty%2Fhaproxy.git BUG/MINOR: backend: Remove CO_FL_SESS_IDLE if a client remains on the last server When a connection is picked from the session server list because the proxy or the session are marked to use the last requested server, if it is idle, we must marked it as used removing the CO_FL_SESS_IDLE flag and decrementing the session idle_conns counter. This patch must be backported as far as 1.9. --- diff --git a/src/backend.c b/src/backend.c index 7027c54cda..5958a824e9 100644 --- a/src/backend.c +++ b/src/backend.c @@ -623,6 +623,10 @@ int assign_server(struct stream *s) if (!(conn->flags & CO_FL_WAIT_XPRT)) { srv = tmpsrv; s->target = &srv->obj_type; + if (conn->flags & CO_FL_SESS_IDLE) { + conn->flags &= ~CO_FL_SESS_IDLE; + s->sess->idle_conns--; + } goto out_ok; } }