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

net/http: don't reuse connections that are experiencing errors [1.19 backport] #60662

Closed
gopherbot opened this issue Jun 7, 2023 · 2 comments
Labels
CherryPickCandidate Used during the release process for point releases WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Milestone

Comments

@gopherbot
Copy link

@ianlancetaylor requested issue #59690 to be considered for backport to the next 1.19 minor release.

@gopherbot Please open backport to 1.19.

Rationale quoting #60301 (which is for the other open minor release):

When encountered, this is a serious issue: requests are blocked until the kernel gives up on the socket (with default settings on a Linux host, that's around 17 minutes). If the operator restarts the application as a result, data loss may occur.

Although the fix is in x/net v0.10.0 it will not be available to most developers who likely import net/http (and so rely on the h2 bundle rolled into Go's releases)

The only viable workaround is to disable the H2 client entirely via environment variable.

@gopherbot gopherbot added the CherryPickCandidate Used during the release process for point releases label Jun 7, 2023
@gopherbot gopherbot added this to the Go1.19.11 milestone Jun 7, 2023
@ianlancetaylor ianlancetaylor added CherryPickApproved Used during the release process for point releases and removed CherryPickCandidate Used during the release process for point releases labels Jun 7, 2023
@ianlancetaylor
Copy link
Contributor

CC @neild

@dmitshur dmitshur changed the title x/net/http2: Raciness in stream close prevents closing of failed connections, blocking subsequent requests [1.19 backport] net/http: don't reuse connections that are experiencing errors [1.19 backport] Jun 19, 2023
@dmitshur dmitshur added CherryPickCandidate Used during the release process for point releases WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. and removed CherryPickApproved Used during the release process for point releases labels Jun 21, 2023
@gopherbot gopherbot modified the milestones: Go1.19.11, Go1.19.12 Jul 11, 2023
@gopherbot gopherbot modified the milestones: Go1.19.12, Go1.19.13 Aug 1, 2023
@dmitshur
Copy link
Contributor

The upstream issue isn't resolved yet, and the Go 1.19 release has exited its support window per https://go.dev/doc/devel/release#policy. We happen to be doing an off-cycle release, but it's for #61197 and a few other compatibility-increasing fixes that were ready, and this one isn't.

@dmitshur dmitshur closed this as not planned Won't fix, can't repro, duplicate, stale Aug 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CherryPickCandidate Used during the release process for point releases WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

3 participants