Skip to content

h2: stream error improvements#6910

Closed
bagder wants to merge 4 commits intomasterfrom
bagder/h1-reuse-not-h2
Closed

h2: stream error improvements#6910
bagder wants to merge 4 commits intomasterfrom
bagder/h1-reuse-not-h2

Conversation

@bagder
Copy link
Member

@bagder bagder commented Apr 18, 2021

  1. move the stream error field to the per-transfer storage
  2. call the handle-closed function correctly on closed stream

@bagder bagder added the HTTP/2 label Apr 18, 2021
@bagder

This comment has been minimized.

@bagder bagder force-pushed the bagder/h1-reuse-not-h2 branch from e36dbc0 to 4fe8d00 Compare April 19, 2021 07:02
bagder added 2 commits April 19, 2021 13:21
This was this one condition where the stream could be closed due to an
error and the function would still wrongly just return 0 for it.

Reported-by: Gergely Nagy
Fixes #6862
Closes #6910
Storing a stream error in the per-connection struct was an error that lead to
race conditions as subsequent stream handling could overwrite the error code
before it was used for the stream with the actual problem.

Closes #6910
@bagder bagder changed the title transfer/readwrite_data: bail out the read loop when the h2 stream ends h2: stream error improvements Apr 19, 2021
@bagder bagder force-pushed the bagder/h1-reuse-not-h2 branch from 6c4007e to 4da30c3 Compare April 19, 2021 11:22
The ConnectionExists() function will note that the new transfer wants
less then h2 and that it can't multiplex it and therefor opt to open a
new connection instead.
... for situations when multiplexing isn't enabled on the h2 connection
and h1 is explicitly requested for the transfer.

Assisted-by: Gergely Nagy
@bagder bagder closed this in 252790c Apr 21, 2021
bagder added a commit that referenced this pull request Apr 21, 2021
Storing a stream error in the per-connection struct was an error that lead to
race conditions as subsequent stream handling could overwrite the error code
before it was used for the stream with the actual problem.

Closes #6910
@bagder bagder deleted the bagder/h1-reuse-not-h2 branch July 30, 2021 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

Connection is retried via HTTP/2 after HTTP_1_1_REQUIRED is received in some cases

1 participant