]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: mux-quic: do not reuse connection if app already shut
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 23 Jul 2025 07:41:46 +0000 (09:41 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 23 Jul 2025 13:45:18 +0000 (15:45 +0200)
commit00d668549e46b34d29ea3daa1f6dd42b5251a365
tree4b9f2ab14e06077b4f3a293034908e06f446c1bf
parent3217835b1df6a4cf9e56c310b0a8e2dd7d5981bc
MINOR: mux-quic: do not reuse connection if app already shut

QUIC connection graceful closure is performed in two steps. First, the
application layer is closed. In the context of HTTP/3, this is done with
a GOAWAY frame emission, which forbids opening of new streams. Then the
whole connection is terminated via CONNECTION_CLOSE which is the final
emitted frame.

This commit ensures that when app layer is shut for a backend
connection, this connection is removed from either idle or avail server
tree. The objective is to prevent stream layer to try to reuse a
connection if no new stream can be attached on it.

New BUG_ON checks are inserted in qmux_strm_attach() and h3_attach() to
ensure that this assertion is always true.
src/h3.c
src/mux_quic.c