]> git.kaiwu.me - haproxy.git/commitdiff
BUG/MEDIUM: mux_quic: notify stream on RESET_STREAM reception
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 29 Sep 2026 09:27:41 +0000 (11:27 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 7 Oct 2026 09:00:24 +0000 (11:00 +0200)
Always notify upper stream layer when a RESET_STREAM is received. This
is necessary as reset will be reported during rcv_buf callback.

Without this patch, reset won't be reported if stream is already
subscribed. This may result in a stream freeze, until its close on
timeout.

This should be backported up to 2.8, after a period of observation.

src/mux_quic.c

index 996904d143789e13a8f8fcd97f4a951a5e226a05..de443a5682b833cb0a7038fde7e28a47a97487a0 100644 (file)
@@ -2434,6 +2434,10 @@ int qcc_recv_reset_stream(struct qcc *qcc, uint64_t id, uint64_t err, uint64_t f
                LIST_APPEND(&qcs->qcc->purg_list, &qcs->el_send);
                tasklet_wakeup(qcs->qcc->wait_event.tasklet);
        }
+       else {
+               /* Wake-up upper stream layer to notify about reset on read. */
+               qcs_alert(qcs);
+       }
 
  out:
        if (qcc->glitches != prev_glitches && !(qcc->flags & QC_CF_IS_BACK))