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.
This commit is contained in:
Amaury Denoyelle 2022-12-22 18:56:09 +01:00
parent 6fbc35f473
commit 9107731358
1 changed files with 4 additions and 5 deletions

View 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);