]> git.kaiwu.me - haproxy.git/commit
MINOR: mux-quic: release BE idle conn after GOAWAY reception
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 17 Apr 2026 10:02:41 +0000 (12:02 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 17 Apr 2026 11:28:17 +0000 (13:28 +0200)
commit1acf147e2aed40c924b390b508f266a1a4aa506e
tree3faad8cc885c6d4fac82997c917864c26f476f6f
parent220b1bf6d97a193977d28ae73d1ad0d4800bb194
MINOR: mux-quic: release BE idle conn after GOAWAY reception

An idle backend connection is useless if a HTTP/3 GOAWAY frame has been
received. Indeed, it is forbid to open new stream on such connection.

Thus, this patch ensures such connections are removed as soon as
possible. This is performed via a new check in qcc_is_dead() on
QC_CF_CONN_SHUT flag for backend connections. This ensures that a shut
connection is released instead of being inserted in idle list on detach
operation.

This commits also completes qcc_recv() with a new call to qcc_is_dead()
on its ending. This is necessary if GOAWAY is received on an idle
connection. For now, this is only checked for backend connections as a
GOAWAY is without any real effect for frontend connections. Thus, this
extra protection ensures that we do not break by incident QUIC frontend
support.

qcc_io_recv() also performs qcc_decode_qcs(). However, an extra
qcc_is_dead() is not necessary in this case as the following
qcc_io_process() already performs it.
src/mux_quic.c