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: apparent deadlock in TestHandlerPanic #50448

Closed
bcmills opened this issue Jan 5, 2022 · 3 comments
Closed

net/http: apparent deadlock in TestHandlerPanic #50448

bcmills opened this issue Jan 5, 2022 · 3 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Jan 5, 2022

greplogs --dashboard -md -l -e net/http\\.\\\(\\\*Client\\\)\\.Get.\*\\n\\t.\*\\nnet/http_test\\.testHandlerPanic

2022-01-04T22:05:15-e39ab9b/windows-arm64-10

goroutine 1523 [sync.Cond.Wait, 2 minutes]:
runtime.gopark(0x7ff6e9e5f3d0?, 0x4000285400?, 0x0?, 0x0?, 0xe7791f701?)
	C:/workdir/go/src/runtime/proc.go:366 +0xe8 fp=0x4000717770 sp=0x4000717750 pc=0x7ff6e9df94a8
runtime.goparkunlock(...)
	C:/workdir/go/src/runtime/proc.go:372
sync.runtime_notifyListWait(0x40001d1610, 0x0)
	C:/workdir/go/src/runtime/sema.go:513 +0x178 fp=0x40007177c0 sp=0x4000717770 pc=0x7ff6e9e22958
sync.(*Cond).Wait(0x40001d1600)
	C:/workdir/go/src/sync/cond.go:56 +0xd8 fp=0x4000717800 sp=0x40007177c0 pc=0x7ff6e9e2f388
net/http.(*connReader).abortPendingRead(0x40005cbb60)
	C:/workdir/go/src/net/http/server.go:720 +0xc8 fp=0x4000717850 sp=0x4000717800 pc=0x7ff6ea0345c8
net/http.(*conn).serve.func1()
	C:/workdir/go/src/net/http/server.go:1833 +0x180 fp=0x40007178f0 sp=0x4000717850 pc=0x7ff6ea03aba0
panic({0x7ff6ea181480, 0x7ff6ea2d1ec0})
	C:/workdir/go/src/runtime/panic.go:844 +0x260 fp=0x40007179b0 sp=0x40007178f0 pc=0x7ff6e9df6700
net/http_test.testHandlerPanic.func1({0x7ff6ea2d6690?, 0x40003649a0?}, 0x7ff6e9e5f3d0?)
	C:/workdir/go/src/net/http/serve_test.go:2800 +0x4c fp=0x4000717a50 sp=0x40007179b0 pc=0x7ff6ea0e3afc
net/http.HandlerFunc.ServeHTTP(0x0?, {0x7ff6ea2d6690?, 0x40003649a0?}, 0x7ff6e9e01cec?)
	C:/workdir/go/src/net/http/server.go:2084 +0x3c fp=0x4000717a80 sp=0x4000717a50 pc=0x7ff6ea03b23c
net/http.serverHandler.ServeHTTP({0x40005cbb60?}, {0x7ff6ea2d6690, 0x40003649a0}, 0x4000282a00)
	C:/workdir/go/src/net/http/server.go:2916 +0x408 fp=0x4000717b40 sp=0x4000717a80 pc=0x7ff6ea03e8a8
net/http.(*conn).serve(0x4000628460, {0x7ff6ea2d6be8, 0x40002b01e0})
	C:/workdir/go/src/net/http/server.go:1966 +0x550 fp=0x4000717fa0 sp=0x4000717b40 pc=0x7ff6ea039f70
net/http.(*Server).Serve.func3()
	C:/workdir/go/src/net/http/server.go:3071 +0x34 fp=0x4000717fd0 sp=0x4000717fa0 pc=0x7ff6ea03f344
runtime.goexit()
	C:/workdir/go/src/runtime/asm_arm64.s:1259 +0x4 fp=0x4000717fd0 sp=0x4000717fd0 pc=0x7ff6e9e26dc4
created by net/http.(*Server).Serve
	C:/workdir/go/src/net/http/server.go:3071 +0x448

[…]

goroutine 1486 [select, 2 minutes]:
runtime.gopark(0x4000071648?, 0x6?, 0x28?, 0x13?, 0x4000071454?)
	C:/workdir/go/src/runtime/proc.go:366 +0xe8 fp=0x40000712d0 sp=0x40000712b0 pc=0x7ff6e9df94a8
runtime.selectgo(0x4000071648, 0x4000071448, 0x7ff6ea206e77?, 0x0, 0x4000071508?, 0x1)
	C:/workdir/go/src/runtime/select.go:328 +0x6d0 fp=0x40000713f0 sp=0x40000712d0 pc=0x7ff6e9e09b50
net/http.(*persistConn).roundTrip(0x400055a6c0, 0x40001d1580)
	C:/workdir/go/src/net/http/transport.go:2614 +0x804 fp=0x40000716b0 sp=0x40000713f0 pc=0x7ff6ea0564a4
net/http.(*Transport).roundTrip(0x40005b23c0, 0x4000282800)
	C:/workdir/go/src/net/http/transport.go:594 +0x6c0 fp=0x40000718f0 sp=0x40000716b0 pc=0x7ff6ea04b1b0
net/http.(*Transport).RoundTrip(0x40005cb860?, 0x7ff6ea2d3968?)
	C:/workdir/go/src/net/http/roundtrip.go:17 +0x20 fp=0x4000071910 sp=0x40000718f0 pc=0x7ff6ea032d80
net/http.send(0x4000282800, {0x7ff6ea2d3968, 0x40005b23c0}, {0x7ff6e9ff6bf8?, 0x8?, 0x0?})
	C:/workdir/go/src/net/http/client.go:252 +0x4ec fp=0x4000071af0 sp=0x4000071910 pc=0x7ff6e9ff52fc
net/http.(*Client).send(0x40005cb740, 0x4000282800, {0x80000?, 0x10000?, 0x0?})
	C:/workdir/go/src/net/http/client.go:176 +0xa4 fp=0x4000071b70 sp=0x4000071af0 pc=0x7ff6e9ff4c94
net/http.(*Client).do(0x40005cb740, 0x4000282800)
	C:/workdir/go/src/net/http/client.go:725 +0x714 fp=0x4000071d80 sp=0x4000071b70 pc=0x7ff6e9ff6c54
net/http.(*Client).Do(...)
	C:/workdir/go/src/net/http/client.go:593
net/http.(*Client).Get(0x400041ab60?, {0x40001a4198?, 0x7ff6ea2d4428?})
	C:/workdir/go/src/net/http/client.go:480 +0x7c fp=0x4000071de0 sp=0x4000071d80 pc=0x7ff6e9ff62bc
net/http_test.testHandlerPanic(0x400041ab60, 0x0, 0x17?, 0x0, {0x7ff6ea181480?, 0x7ff6ea2d1ec0})
	C:/workdir/go/src/net/http/serve_test.go:2822 +0x3c8 fp=0x4000071f20 sp=0x4000071de0 pc=0x7ff6ea0e36a8
net/http_test.TestHandlerPanic_h1(0x4000509f18?)
	C:/workdir/go/src/net/http/serve_test.go:2758 +0x3c fp=0x4000071f60 sp=0x4000071f20 pc=0x7ff6ea0e31fc
testing.tRunner(0x400041ab60, 0x7ff6ea24ee60)
	C:/workdir/go/src/testing/testing.go:1440 +0x110 fp=0x4000071fb0 sp=0x4000071f60 pc=0x7ff6e9eb7360
testing.(*T).Run.func1()
	C:/workdir/go/src/testing/testing.go:1487 +0x30 fp=0x4000071fd0 sp=0x4000071fb0 pc=0x7ff6e9eb80d0
runtime.goexit()
	C:/workdir/go/src/runtime/asm_arm64.s:1259 +0x4 fp=0x4000071fd0 sp=0x4000071fd0 pc=0x7ff6e9e26dc4
created by testing.(*T).Run
	C:/workdir/go/src/testing/testing.go:1487 +0x328

2021-11-15T18:43:07-0e65410/plan9-arm
2021-09-21T16:34:40-901ac46/plan9-arm
2020-12-10T23:11:25-1fe891a/ios-arm64-corellium
2019-06-11T17:29:22-5f94d44/darwin-arm64-mn4m2zdaios

CC @neild

@bcmills
Copy link
Contributor Author

bcmills commented Jan 5, 2022

This bug may be very old and very hard to trigger. (See previously #13555 (2015), #4830 (2014), #2518 (2011); CC @bradfitz.)

@bcmills bcmills added this to the Backlog milestone Jan 5, 2022
@bcmills bcmills added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Jan 5, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jan 6, 2022

This has the same signature as #50469 — a deadlock in abortPendingRead that occurs only on ARM builders.

@bcmills
Copy link
Contributor Author

bcmills commented Jan 6, 2022

Duplicate of #50469

@bcmills bcmills marked this as a duplicate of #50469 Jan 6, 2022
@bcmills bcmills closed this as completed Jan 6, 2022
@golang golang locked and limited conversation to collaborators Jan 6, 2023
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.
Projects
None yet
Development

No branches or pull requests

2 participants