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.
(cherry picked from commit 9107731358
)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 1ac095486711084895763fe026bd9186f3415bd6)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
This commit is contained in:
parent
a6ff9f5361
commit
ba2817bba8
@ -1154,12 +1154,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);
|
||||
|
Loading…
Reference in New Issue
Block a user