BUG/MINOR: mux_quic: open an idle QCS on reset on BE side

On the backend side, a QCS may be opened but resetted immediately. No
STREAM frame will be emitted prior to the RESET_STREAM. When the latter
is sent, qcs_close_local() will mark the QCS Tx channel as closed.

In this case, a BUG_ON() would be triggered as there is QCS Tx channel
is not yet marked as opened. To prevent this, add a qcs_idle_open() call
when the stream is resetted, but only for the backend side.

This should be backported up to 3.3.
This commit is contained in:
Amaury Denoyelle 2026-04-23 14:23:01 +02:00
parent fb828a4711
commit 802a3b7288

View file

@ -1737,6 +1737,10 @@ void qcc_reset_stream(struct qcs *qcs, int err, int tevt)
qcs->flags |= QC_SF_TO_RESET;
qcs->err = err;
/* On BE side, a QCS may be resetted before any data emission. */
if (conn_is_back(qcs->qcc->conn))
qcs_idle_open(qcs);
if (diff) {
const int soft_blocked = qfctl_sblocked(&qcc->tx.fc);