]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: h3: fix GOAWAY emission
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 25 Jan 2023 09:50:03 +0000 (10:50 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 25 Jan 2023 15:09:26 +0000 (16:09 +0100)
Since the rework of QUIC streams send scheduling, each stream has to be
inserted in QUIC-mux send-list to be able to emit content. This was not
the case for GOAWAY which prevent it to be sent. This regression has
been introduced by the following patch :

  commit 20f2a425ffeda2e623aac4c702f4e44b1e122d1d
  MAJOR: mux-quic: rework stream sending priorization

This new patch fixes the issue by inserting H3 control stream in mux
send-list. The impact is deemed minor as for the moment GOAWAY is only
sent just before connection/mux cleanup with a CONNECTION_CLOSE.
However, it might cause some connections to hang up indefinitely.

This should be backported up to 2.7.

src/h3.c

index 9a1d97d40c02f22b6b31ddb381f562da9e9c5d0f..7f0dc476b6b1aae219244c5803217535c9cae933 100644 (file)
--- a/src/h3.c
+++ b/src/h3.c
@@ -1682,6 +1682,7 @@ static int h3_send_goaway(struct h3c *h3c)
        }
 
        b_force_xfer(res, &pos, b_data(&pos));
+       qcc_send_stream(qcs, 1);
 
        return 0;
 }