From 9107731358bec59a13cdaa723867823cd4a0c7af Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Thu, 22 Dec 2022 18:56:09 +0100 Subject: [PATCH] BUG/MINOR: mux-quic: ignore remote unidirectional stream close Remove ABORT_NOW() on remote unidirectional stream closure. This is required to ensure our implementation is evolutive enough to not fail on unknown stream type. Note that for the moment MAX_STREAMS_UNI flow-control frame is never emitted. This should be unnecessary for HTTP/3 which have a limited usage of unidirectional streams but may be required if other application protocols are supported in the future. ABORT_NOW() was triggered by s2n-quic which opens an unknown unidirectional stream with greasing. This was detected by QUIC interop runner for http3 testcase. This must be backported up to 2.6. --- src/mux_quic.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/mux_quic.c b/src/mux_quic.c index fbc4a935a0..e64480beb9 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -1237,12 +1237,11 @@ static int qcc_release_remote_stream(struct qcc *qcc, uint64_t id) } } else { - /* TODO in HTTP/3 unidirectional streams cannot be closed or a - * H3_CLOSED_CRITICAL_STREAM will be triggered before - * entering here. If a new application protocol is supported it - * might be necessary to implement MAX_STREAMS_UNI emission. + /* TODO unidirectional stream flow control with MAX_STREAMS_UNI + * emission not implemented. It should be unnecessary for + * HTTP/3 but may be required if other application protocols + * are supported. */ - ABORT_NOW(); } TRACE_LEAVE(QMUX_EV_QCS_END, qcc->conn); -- 2.47.2