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

x/net/http2: frequent TestTransportReqBodyAfterResponse_200 failures with "Unexpected client frame" since 2021-10-04 #49314

Closed
bcmills opened this issue Nov 3, 2021 · 3 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Nov 3, 2021

--- FAIL: TestTransportReqBodyAfterResponse_200 (0.44s)
    transport_test.go:837: server: Unexpected client frame [FrameHeader RST_STREAM stream=1 len=4]
FAIL
FAIL	golang.org/x/net/http2	27.754s

greplogs --dashboard -md -l -e '(?m)FAIL: TestTransport.*\n.*Unexpected client frame'

2021-11-03T09:23:34-4a448f8-6458b2e/android-amd64-emu
2021-11-03T09:08:46-4a448f8-5b21317/windows-arm64-10
2021-11-03T00:49:50-4a448f8-a4b2c57/linux-amd64-race
2021-11-02T21:19:29-4a448f8-42e6b5b/android-386-emu
2021-11-02T20:26:55-4a448f8-7c9510e/windows-arm64-10
2021-11-02T06:25:39-4a448f8-088bb4b/freebsd-arm-paulzhol
2021-11-01T21:27:46-4a448f8-f9cb33c/android-386-emu
2021-11-01T21:27:26-4a448f8-631b567/android-amd64-emu
2021-11-01T02:47:30-9967326-fde4cc2/android-386-emu
2021-10-30T18:30:34-9967326-6113dac/freebsd-arm-paulzhol
2021-10-29T23:25:18-9967326-5d6d9f5/android-amd64-emu
2021-10-29T22:29:31-540bb53-c812b97/android-amd64-emu
2021-10-29T04:21:07-d418f37-f288526/freebsd-arm-paulzhol
2021-10-28T21:17:17-d418f37-f6f024f/windows-arm64-10
2021-10-28T03:44:12-d418f37-2ff1074/freebsd-arm-paulzhol
2021-10-26T21:17:38-d418f37-091db63/android-386-emu
2021-10-26T20:41:32-d418f37-3a0cd11/android-386-emu
2021-10-26T00:38:52-d418f37-0ec1b62/windows-arm64-10
2021-10-25T15:31:40-d418f37-89cc528/android-amd64-emu
2021-10-19T17:01:56-4f30a5c-99fad12/android-386-emu
2021-10-18T16:06:08-4f30a5c-417100e/android-amd64-emu
2021-10-17T04:27:13-4f30a5c-cf51fb5/android-amd64-emu
2021-10-16T14:50:21-4f30a5c-680caf1/android-amd64-emu
2021-10-15T21:46:06-4f30a5c-ed1c8db/android-386-emu
2021-10-15T20:29:36-db2dff3-a17b2e8/freebsd-arm-paulzhol
2021-10-15T16:57:36-fd004c5-a80e53e/android-amd64-emu
2021-10-14T18:44:37-2b766c0-a37bebc/android-386-emu
2021-10-14T17:38:39-2b766c0-011fd00/android-386-emu
2021-10-13T17:16:12-e13a265-4a3daee/android-amd64-emu
2021-10-13T17:12:55-e13a265-2ac3bdf/freebsd-arm-paulzhol
2021-10-13T15:56:29-ee2e9a0-5326094/freebsd-arm-paulzhol
2021-10-13T15:34:56-08712a7-f687831/android-amd64-emu
2021-10-13T15:34:56-08712a7-c580180/android-386-emu
2021-10-13T04:00:15-caeb26a-e8f99da/dragonfly-amd64
2021-10-12T22:26:55-caeb26a-78d01be/android-386-emu
2021-10-12T22:26:55-caeb26a-78d01be/dragonfly-amd64
2021-10-12T06:55:50-caeb26a-d887d3b/android-386-emu
2021-10-11T22:34:49-caeb26a-d90f0b9/android-amd64-emu
2021-10-11T15:28:50-3b03d30-702e337/android-386-emu
2021-10-10T15:11:26-3b03d30-d2d21d9/freebsd-arm-paulzhol
2021-10-08T21:38:44-3b03d30-74abcab/android-amd64-emu
2021-10-08T19:48:52-3b03d30-2ac3bdf/freebsd-arm-paulzhol
2021-10-08T14:08:12-59d4e92-5b9206f/android-amd64-emu
2021-10-07T18:11:41-59d4e92-2ac3bdf/android-386-emu
2021-10-07T14:37:45-59d4e92-ebeab63/android-386-emu
2021-10-07T12:55:05-59d4e92-7d57324/freebsd-arm-paulzhol
2021-10-06T18:44:56-d2e5035-195945a/android-amd64-emu
2021-10-04T23:29:20-69340ce-e5f6d8d/freebsd-arm-paulzhol
2021-10-04T21:10:16-b30845b-f0db7ea/android-386-emu
2021-10-04T20:20:20-b30845b-2dc91a2/android-386-emu

(attn: @neild)

@bcmills bcmills added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker labels Nov 3, 2021
@bcmills bcmills added this to the Go1.18 milestone Nov 3, 2021
@bcmills
Copy link
Contributor Author

bcmills commented Nov 3, 2021

(This is a release blocker for Go 1.18 via #11811.)

@bcmills
Copy link
Contributor Author

bcmills commented Nov 3, 2021

Curiously, this failure mode began before the fix for #48970. 🤔

@gopherbot
Copy link

Change https://golang.org/cl/361267 mentions this issue: http2: avoid race between processing END_STREAM and closing Response.Body

dteh pushed a commit to dteh/fhttp that referenced this issue Jun 22, 2022
…Body

When the client gets an END_STREAM from the peer, it causes the
response body to return io.EOF and closes cs.peerClosed.

It is possible for the caller of RoundTrip to read io.EOF from the
response body and end the request by calling Response.Body.Close
before we close cs.peerClosed. In this case, we send a spurious
RST_STREAM to the peer.

Closing cs.peerClosed first reverses the race: This can cause the
response body to return "request canceled" rather than io.EOF.

Close both streams with the connection mutex held.

Fixes golang/go#49314

Change-Id: I75557670497c96dd6ed1b566bb4f0f3106a0c9f9
Reviewed-on: https://go-review.googlesource.com/c/net/+/361267
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>
@golang golang locked and limited conversation to collaborators Nov 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Projects
None yet
Development

No branches or pull requests

2 participants