Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streams should be reset when the RequestStream dropped #262

Open
ealinmen opened this issue Nov 5, 2024 · 1 comment
Open

Streams should be reset when the RequestStream dropped #262

ealinmen opened this issue Nov 5, 2024 · 1 comment
Labels
E-medium Effort: medium. Some knowledge of how the internals work would be useful.

Comments

@ealinmen
Copy link

ealinmen commented Nov 5, 2024

See the rfc:

Implementations SHOULD cancel requests by abruptly terminating any directions of a stream
 that are still open. To do so, an implementation resets the sending parts of streams and
 aborts reading on the receiving parts of streams; see [Section 2.4](https://www.rfc-
editor.org/rfc/rfc9000#section-2.4) of [[QUIC-TRANSPORT]
(https://datatracker.ietf.org/doc/html/rfc9000)].

In many cases, The request stream will be dropped directly. For example in reqwest, if total timeout occurs, The entire future that sends the request will be dropped.

We are writing a quic implementation and also using it.

In our implementation, if the application layer drop the stream before the sender or.and receiver sides of the stream are reset or complete, The program will panic directly.

We stand by this. It is no longer possible for the application layer to read and write on the stream, but the stream has not ended. This is unreasonable.

This does bring us a lot of trouble, especially when using the reqwest library. Because h3 does not implement a SHOULD in rfc.

@seanmonstar seanmonstar added the E-medium Effort: medium. Some knowledge of how the internals work would be useful. label Nov 5, 2024
@seanmonstar
Copy link
Member

This seems reasonable!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E-medium Effort: medium. Some knowledge of how the internals work would be useful.
Projects
None yet
Development

No branches or pull requests

2 participants