From e91a526c8fe7bf3b655057d41e8b72a2011b7046 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 1 Jul 2020 18:56:30 +0200 Subject: [PATCH] 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. --- src/backend.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend.c b/src/backend.c index 7027c54cd..5958a824e 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; } }