mirror of
https://github.com/haproxy/haproxy.git
synced 2026-06-08 16:23:24 -04:00
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:
parent
fb828a4711
commit
802a3b7288
1 changed files with 4 additions and 0 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue