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 e83f346..22bf429 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;