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: Possible HTTP/2 busy loop regression in Go 1.17.3 [1.16 backport] #49623

Closed
gopherbot opened this issue Nov 16, 2021 · 4 comments
Closed
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Milestone

Comments

@gopherbot
Copy link

@neild requested issue #49615 to be considered for backport to the next 1.16 minor release.

@gopherbot Please open backport issues for 1.16 and 1.17.

@gopherbot gopherbot added the CherryPickCandidate Used during the release process for point releases label Nov 16, 2021
@gopherbot gopherbot added this to the Go1.16.11 milestone Nov 16, 2021
@dmitshur dmitshur added CherryPickApproved Used during the release process for point releases and removed CherryPickCandidate Used during the release process for point releases labels Dec 1, 2021
@gopherbot
Copy link
Author

Change https://golang.org/cl/368376 mentions this issue: [internal-branch.go1.16-vendor] http2: avoid busy loop when ResponseHeaderTimeout is set

gopherbot pushed a commit to golang/net that referenced this issue Dec 1, 2021
…eaderTimeout is set

Don't keep reading from respHeaderRecv after the response headers
are received.

For golang/go#49615.
Fixes golang/go#49623.

Change-Id: Ib8126c954930011ac09b2cbc70bbbce76531b7db
Reviewed-on: https://go-review.googlesource.com/c/net/+/364574
Trust: Damien Neil <dneil@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
(cherry picked from commit 47ca1ff)
Reviewed-on: https://go-review.googlesource.com/c/net/+/368376
Reviewed-by: Michael Knyszek <mknyszek@google.com>
@mknyszek
Copy link
Contributor

mknyszek commented Dec 1, 2021

Landed the fix.

@mknyszek mknyszek closed this as completed Dec 1, 2021
@mknyszek
Copy link
Contributor

mknyszek commented Dec 1, 2021

Still needs more work to fully land.

@mknyszek mknyszek reopened this Dec 1, 2021
@gopherbot
Copy link
Author

Change https://golang.org/cl/368594 mentions this issue: [release-branch.go1.16] net/http: update bundled golang.org/x/net/http2

@mknyszek mknyszek closed this as completed Dec 2, 2021
gopherbot pushed a commit that referenced this issue Dec 2, 2021
Pull in approved backports to golang.org/x/net/http2:

    64539c1 http2: don't count aborted streams as active in tests
    e677a40 ipv6: OpenBSD does not appear to support multicast loopback
    d8ae719 net/http2: Fix handling of expect continue
    cc2f99c http2: avoid busy loop when ResponseHeaderTimeout is set
    5533dda http2: avoid spurious RoundTrip error when server closes and resets stream
    26ec667 http2: close conns after use when req.Close is set

By doing:

    $ go get -d golang.org/x/net@internal-branch.go1.16-vendor
    go: downloading golang.org/x/net v0.0.0-20211201233224-64539c132272
    go get: upgraded golang.org/x/net v0.0.0-20211101194150-d8c3cde3c676 => v0.0.0-20211201233224-64539c132272
    $ go mod tidy
    $ go mod vendor
    $ go generate -run=bundle std

Fixes #49904.
Fixes #49623.
Fixes #49661.
Fixes #49560.
Fixes #49908.
Fixes #49910.

Change-Id: I73261b189f84cf1919a79129ec36a1c187723133
Reviewed-on: https://go-review.googlesource.com/c/go/+/368594
Trust: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
@golang golang locked and limited conversation to collaborators Dec 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

3 participants