Skip to content

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
@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