-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
hang when client receives header response that's too big in http2 #3724
Comments
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.
Hi, I think we might be running into this with lots of headers being sent to us by Do you have any further updates on this already? |
Perhaps with hyperium/h2#791 this is resolved. What do y'all think? |
Mhhm, could it be possible to increase the header size limit on-demand (up to a fixed maximum)? Just thinking about a version that will allow clients/servers to work with large headers, instead of throwing an error. |
Yea, the hang is likely solved, thanks!
That's what a maximum does already. You can adjust the maximum with builder options. |
Version
Hyper @ 7de0237
Platform
Linux 6.5.0-42-generic
Description
When the server sends a response with headers that are too big, hyper can sometimes just hang.
I wrote this test:
hyper/tests/integration.rs
Lines 64 to 86 in bdd112e
I expected to see an error. Instead the test just blocks forever.
See hyperium/tonic#1834 and https://discord.com/channels/500028886025895936/1268954374634471484 for context.
The text was updated successfully, but these errors were encountered: