]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mux-quic: ignore remote unidirectional stream close
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Dec 2022 17:56:09 +0000 (18:56 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Dec 2022 23:15:20 +0000 (00:15 +0100)
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

index fbc4a935a0a46d355526aa2686308496ea3d3525..e64480beb98943ab5ec9d9b82d14acd77f014dc0 100644 (file)
@@ -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);