You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
seanmonstar opened this issue
Jun 6, 2018
· 2 comments
Labels
A-http2Area: HTTP/2 specific.C-featureCategory: feature. This is adding a new feature.E-easyEffort: easy. A task that would be a great starting point for a new contributor.
When sending a body over HTTP2, if it takes a while to generate another chunk (so, Payload::poll_data returned NotReady), and the remote sends a RST_STREAM, the body should be canceled at that moment. Currently, hyper won't notice the RST_STREAM until once Payload::poll_data notifies the task that a new chunk is ready, and then hyper tries to write it via send_data.
In a similar vein, in the server, if a Future for a Response takes a while, we should also be sure to cancel that Future immediately if the client sends a RST_STREAM for it.
Steps to fix
Essentially, the fix is applying what was done in tower-h2, in this commit.
The text was updated successfully, but these errors were encountered:
seanmonstar
added
E-easy
Effort: easy. A task that would be a great starting point for a new contributor.
C-feature
Category: feature. This is adding a new feature.
A-http2
Area: HTTP/2 specific.
labels
Jun 6, 2018
A-http2Area: HTTP/2 specific.C-featureCategory: feature. This is adding a new feature.E-easyEffort: easy. A task that would be a great starting point for a new contributor.
When sending a body over HTTP2, if it takes a while to generate another chunk (so,
Payload::poll_data
returnedNotReady
), and the remote sends aRST_STREAM
, the body should be canceled at that moment. Currently, hyper won't notice theRST_STREAM
until oncePayload::poll_data
notifies the task that a new chunk is ready, and then hyper tries to write it viasend_data
.In a similar vein, in the server, if a
Future
for aResponse
takes a while, we should also be sure to cancel thatFuture
immediately if the client sends aRST_STREAM
for it.Steps to fix
The text was updated successfully, but these errors were encountered: