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.
This commit is contained in:
Christopher Faulet 2020-07-01 18:56:30 +02:00
parent 27182297c7
commit e91a526c8f

View File

@ -623,6 +623,10 @@ int assign_server(struct stream *s)
if (!(conn->flags & CO_FL_WAIT_XPRT)) { if (!(conn->flags & CO_FL_WAIT_XPRT)) {
srv = tmpsrv; srv = tmpsrv;
s->target = &srv->obj_type; 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; goto out_ok;
} }
} }