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: notify recv task upon reset #791

Merged
merged 1 commit into from
Aug 2, 2024

Conversation

ajwerner
Copy link
Contributor

@ajwerner ajwerner commented Aug 2, 2024

Before this change, the transition to the reset state wouldn't notify tasks that were waiting for a response. The motivating case for this patch involved a large header being sent by the server. This case was mostly tested by an existing test, but because that test did not spawn separate tasks and kept polling the futures through its use of conn.drive, the missing notify was masked.

Informs hyperium/hyper#3724.

Before this change, the transition to the reset state wouldn't notify
tasks that were waiting for a response. The motivating case for this
patch involved a large header being sent by the server. This case was
mostly tested by an existing test, but because that test did not spawn
separate tasks and kept polling the futures through its use of
`conn.drive`, the missing notify was masked.

Informs hyperium/hyper#3724.
@seanmonstar seanmonstar merged commit 7dbb5c5 into hyperium:master Aug 2, 2024
6 checks passed
@ajwerner ajwerner deleted the notify-recv-on-reset branch August 4, 2024 14:31
ajwerner added a commit to ajwerner/h2 that referenced this pull request Aug 6, 2024
This commit adds wrappers around futures::future helpers and augments
TestFuture to ensure that the underlying futures are notified before
they are polled. This helps to catch bugs where there are missing notify
calls or bad handling of the waker.

The commit then extends the tests to use these helpers instead of the
library functions from futures.

It also ammends the client_requests::recv_too_big_headers test to no
longer use the tokio spawned tasks that were added in hyperium#791.
ajwerner added a commit to ajwerner/h2 that referenced this pull request Aug 6, 2024
This commit adds wrappers around futures::future helpers and augments
TestFuture to ensure that the underlying futures are notified before
they are polled. This helps to catch bugs where there are missing notify
calls or bad handling of the waker.

The commit then extends the tests to use these helpers instead of the
library functions from futures.

It also ammends the client_requests::recv_too_big_headers test to no
longer use the tokio spawned tasks that were added in hyperium#791.
ajwerner added a commit to ajwerner/h2 that referenced this pull request Aug 6, 2024
This commit adds wrappers around futures::future helpers and augments
TestFuture to ensure that the underlying futures are notified before
they are polled. This helps to catch bugs where there are missing notify
calls or bad handling of the waker.

The commit then extends the tests to use these helpers instead of the
library functions from futures.

It also ammends the client_requests::recv_too_big_headers test to no
longer use the tokio spawned tasks that were added in hyperium#791.
ajwerner added a commit to ajwerner/h2 that referenced this pull request Aug 6, 2024
This commit adds wrappers around futures::future helpers and augments
TestFuture to ensure that the underlying futures are notified before
they are polled. This helps to catch bugs where there are missing notify
calls or bad handling of the waker.

The commit then extends the tests to use these helpers instead of the
library functions from futures.

It also ammends the client_requests::recv_too_big_headers test to no
longer use the tokio spawned tasks that were added in hyperium#791.
seanmonstar pushed a commit that referenced this pull request Aug 6, 2024
This commit adds wrappers around futures::future helpers and augments
TestFuture to ensure that the underlying futures are notified before
they are polled. This helps to catch bugs where there are missing notify
calls or bad handling of the waker.

The commit then extends the tests to use these helpers instead of the
library functions from futures.

It also ammends the client_requests::recv_too_big_headers test to no
longer use the tokio spawned tasks that were added in #791.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants