From 855ac25d8293718ce2054b2b51a4c60bdf71cee4 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Fri, 28 Dec 2018 14:44:41 +0100 Subject: [PATCH] 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. --- src/mux_h2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 1906d5853..3786d0320 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -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) {