]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: mux-h2: report no available stream on a connection having errors
authorWilly Tarreau <w@1wt.eu>
Thu, 31 Oct 2019 14:10:03 +0000 (15:10 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 31 Oct 2019 14:10:03 +0000 (15:10 +0100)
If an H2 mux has met an error, we must not report available streams
anymore, or it risks to accumulate new streams while not being able
to process them.

This should be backported to 2.0 and 1.9.

src/mux_h2.c

index e83f346e31509b7c421f612ef564e607063a380e..22bf42919bac059b9aab62b53f5d4dfbd4556c40 100644 (file)
@@ -752,6 +752,9 @@ static int h2_avail_streams(struct connection *conn)
        if (h2c->last_sid >= 0)
                return 0;
 
+       if (h2c->st0 >= H2_CS_ERROR)
+               return 0;
+
        /* note: may be negative if a SETTINGS frame changes the limit */
        ret1 = h2c->streams_limit - h2c->nb_streams;