]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: mux_h2: Don't add to the idle list if we're full.
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 28 Dec 2018 13:44:41 +0000 (14:44 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 28 Dec 2018 14:48:52 +0000 (15:48 +0100)
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

index 1906d585309fd73a44252972d6aa8742d2faf215..3786d032097383c313bc21e4912792344d73ae4e 100644 (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) {