]> git.kaiwu.me - haproxy.git/commit
BUG/MINOR: mux_quic: fix possible BUG_ON() after frame alloc failure
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 27 Oct 2026 10:01:13 +0000 (11:01 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 28 Oct 2026 10:06:00 +0000 (11:06 +0100)
commit9b867288146c406fe96ecbee4d4d7077568a11d4
tree30a52d0bf216f41894ea51f6f6ec57d6c0f440fc
parentc0b3d56eff7a87dee22e966cfe67f35204d71e36
BUG/MINOR: mux_quic: fix possible BUG_ON() after frame alloc failure

Reset the list of frames to send at the end of qcc_io_send() if at least
one QCS instance was moved to the qcs_failed list and is reinserted into
the send list. This is mandatory to ensure frame generation will be
performed again for the failed QCS instances.

This issue is detected as it triggers a BUG_ON() crash on the second
qcc_io_send() call, as the send list will contain the previously failed
QCS after qcc_send_frames() despite not being blocked on flow control or
buffer allocation.

This bug occurs after qcs_send() failure, which is either due to the
connection currently being subscribed for send after a transient network
error or after a frame allocation failure under memory pressure.
However, the first case cannot occur as a transient error will not leave
any QCS in failed list. Thus, this fix is only relevant for memory
allocation failure, which explains its minor severity.

This must be backported up to 3.2 after a period of observation. For
older releases, a local frame list is used instead in qcc_io_send().
src/mux_quic.c