BUG/MEDIUM: mux_h2: Don't add to the idle list if we're full.

In h2_detach(), don't add the connection to the idle list if nb_streams
is at the max. This can happen if we already closed that stream before, so
its slot became available and was used by another stream.

This should be backported to 1.9.
This commit is contained in:
Olivier Houchard 2018-12-28 14:44:41 +01:00 committed by Willy Tarreau
parent 86cef23266
commit 855ac25d82

View File

@ -2970,7 +2970,7 @@ static void h2_detach(struct conn_stream *cs)
/* Never ever allow to reuse a connection from a non-reuse backend */
if ((h2c->proxy->options & PR_O_REUSE_MASK) == PR_O_REUSE_NEVR)
h2c->conn->flags |= CO_FL_PRIVATE;
if (LIST_ISEMPTY(&h2c->conn->list)) {
if (LIST_ISEMPTY(&h2c->conn->list) && h2c->nb_streams < h2_settings_max_concurrent_streams) {
struct server *srv = objt_server(h2c->conn->target);
if (srv) {