BUG/MINOR: mux-quic: remove extra BUG_ON() in _qcc_send_stream()
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 20 Mar 2025 17:10:56 +0000 (18:10 +0100)
committerAurelien DARRAGON <adarragon@haproxy.com>
Tue, 15 Apr 2025 17:59:21 +0000 (19:59 +0200)
The following patch fixed a BUG_ON() which could be triggered if RS/SS
emission was scheduled after stream local closure.
  7ee1279f4b8416435faba5cb93a9be713f52e4df
  BUG/MEDIUM: mux-quic: fix crash on RS/SS emission if already close local

qcc_send_stream() was rewritten as a wrapper around an internal
_qcc_send_stream() used to bypass the faulty BUG_ON(). However, an extra
unnecessary BUG_ON() was added by mistake in _qcc_send_stream().

This should not cause any issue, as the BUG_ON() is only active if <urg>
argument is false, which is not the case for RS/SS emission. However,
this patch is labelled as a bug as this BUG_ON() is unnecessary and may
cause issues in the future.

This should be backported up to 2.8, after the above mentionned patch.

(cherry picked from commit c5f8df8d55e6a85f72e415c63188345dc670e53b)
Signed-off-by: Aurelien DARRAGON <adarragon@haproxy.com>
(cherry picked from commit ebeece75c2e138e7c7c111ee7f66a65e79d32ef3)
Signed-off-by: Aurelien DARRAGON <adarragon@haproxy.com>

src/mux_quic.c

index 8e0789c..9290e79 100644 (file)
@@ -1162,9 +1162,6 @@ static void _qcc_send_stream(struct qcs *qcs, int urg)
                LIST_INSERT(&qcc->send_list, &qcs->el_send);
        }
        else {
-               /* Cannot send STREAM if already closed. */
-               BUG_ON(qcs_is_close_local(qcs));
-
                if (!LIST_INLIST(&qcs->el_send))
                        LIST_APPEND(&qcs->qcc->send_list, &qcs->el_send);
        }