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

HTTP/2, treat initial SETTINGS as a WINDOW_UPDATE #11450

Closed
wants to merge 4 commits into from

Conversation

icing
Copy link
Contributor

@icing icing commented Jul 17, 2023

  • refs HTTP/2 connection uploads stall in 8.1.0 .. 8.1.2 #11426 where spurious stalls on large POST requests are reported
  • the issue seems to involve the following
    • first stream on connection adds up to 64KB of POST data, which is the max default HTTP/2 stream window size transfer is set to HOLD
    • initial SETTINGS from server arrive, enlarging the stream window. But no WINDOW_UPDATE is received.
    • curl stalls
  • the fix un-HOLDs a stream on receiving SETTINGS, not relying on a WINDOW_UPDATE from lazy servers

- refs curl#11426 where spurious stalls on large POST requests
  are reported
- the issue seems to involve the following
  * first stream on connection adds up to 64KB of POST
    data, which is the max default HTTP/2 stream window size
    transfer is set to HOLD
  * initial SETTINGS from server arrive, enlarging the stream
    window. But no WINDOW_UPDATE is received.
  * curl stalls
- the fix un-HOLDs a stream on receiving SETTINGS, not
  relying on a WINDOW_UPDATE from lazy servers
lib/http2.c Outdated Show resolved Hide resolved
lib/http2.c Outdated Show resolved Hide resolved
@github-actions github-actions bot added the tests label Jul 17, 2023
@bagder bagder closed this in 380fe02 Jul 17, 2023
bch pushed a commit to bch/curl that referenced this pull request Jul 19, 2023
- refs curl#11426 where spurious stalls on large POST requests
  are reported
- the issue seems to involve the following
  * first stream on connection adds up to 64KB of POST
    data, which is the max default HTTP/2 stream window size
    transfer is set to HOLD
  * initial SETTINGS from server arrive, enlarging the stream
    window. But no WINDOW_UPDATE is received.
  * curl stalls
- the fix un-HOLDs a stream on receiving SETTINGS, not
  relying on a WINDOW_UPDATE from lazy servers

Closes curl#11450
ptitSeb pushed a commit to wasix-org/curl that referenced this pull request Sep 25, 2023
- refs curl#11426 where spurious stalls on large POST requests
  are reported
- the issue seems to involve the following
  * first stream on connection adds up to 64KB of POST
    data, which is the max default HTTP/2 stream window size
    transfer is set to HOLD
  * initial SETTINGS from server arrive, enlarging the stream
    window. But no WINDOW_UPDATE is received.
  * curl stalls
- the fix un-HOLDs a stream on receiving SETTINGS, not
  relying on a WINDOW_UPDATE from lazy servers

Closes curl#11450
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

2 participants