Webtransport close capsule followed by STOP_SENDING result in connection lost
Categories
(Core :: Networking, defect, P3)
Tracking
()
People
(Reporter: marten.richter, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [necko-triaged][necko-priority-next])
Steps to reproduce:
I am currently implementing webtransport in node.js core based on nghttp3 from PR: https://github.com/ngtcp2/nghttp3/pull/442
If you try to send a close capsule with:
https://github.com/ngtcp2/nghttp3/blob/webtransport/lib/nghttp3_conn.c#L3680
it not only sends out a session close capsule, but also a STOP_SENDING.
This is ok per draft-16:
An endpoint that sends a WT_CLOSE_SESSION capsule MUST immediately send a FIN on the CONNECT Stream. The endpoint MAY also send a STOP_SENDING with error code WT_SESSION_GONE to indicate it is no longer reading from the CONNECT stream. The recipient MUST either close or reset the stream in response. After receiving the WT_CLOSE_SESSION capsule, the receiver MAY send a STOP_SENDING with error code WT_SESSION_GONE. If any additional stream data is received on the CONNECT stream after receiving a WT_CLOSE_SESSION capsule, the stream MUST be reset with code H3_MESSAGE_ERROR.
Actual results:
However Firefox reports a "Connection lost." error, the same that also Chromium does. This reflects the wording of draft2:
If the sender of CLOSE_WEBTRANSPORT_SESSION does not receive a FIN after some time, it SHOULD send STOP_SENDING on the CONNECT stream.
Which implies some time until STOP_SENDING comes.
Expected results:
Firefox should have no problem with the behavior of nghttp3.
It would be nice, if it could be made compatible with the newer draft.
(My setup to reproduce it rather complicated, though I believe all information for reproduction is included. However I can give more details, if desired).
Comment 1•27 days ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Networking' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Updated•19 days ago
|
Updated•18 days ago
|
Description
•