runtime: unexpected return pc for runtime.systemstack_switch
myitcv opened this issue · 3 comments
myitcv commented
What version of Go are you using (go version)?
$ go version go version devel +3f21c2381d Thu Nov 14 01:57:00 2019 +0000 linux/amd64
Does this issue reproduce with the latest release?
Yes (although I cannot trigger this, it just happened randomly)
What operating system and processor architecture are you using (go env)?
go env Output
$ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/myitcv/.cache/go-build" GOENV="/home/myitcv/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/myitcv/gostuff" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/myitcv/gos" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build266412837=/tmp/go-build -gno-record-gcc-switches"
What did you do?
Ran go test -short -count=1 ./... in a project of mine
What did you expect to see?
Regular test output
What did you see instead?
# golang.org/x/tools/go/packages/packagestest
runtime: unexpected return pc for runtime.systemstack_switch called from 0x478882bf1e330a7e
stack: frame={sp:0xc0001c2cf8, fp:0xc0001c2d00} stack=[0xc0001c0000,0xc0001c4000)
000000c0001c2bf8: 0000000000000000 0000000000000000
000000c0001c2c08: 0000000000000000 0000000000000000
000000c0001c2c18: 0000000000000000 0000000000000000
000000c0001c2c28: 0000000000000000 0000000000000000
000000c0001c2c38: 0000000000000000 0000000000000000
000000c0001c2c48: 0000000000000000 0000000000000000
000000c0001c2c58: 0000000000000000 0000000000000000
000000c0001c2c68: 0000000000000000 0000000000000000
000000c0001c2c78: 0000000000000000 0000000000000000
000000c0001c2c88: 0000000000000000 0000000000000000
000000c0001c2c98: 0000000000000000 0000000000000000
000000c0001c2ca8: 0000000000000000 0000000000000000
000000c0001c2cb8: 0000000000000000 0000000000000000
000000c0001c2cc8: 0000000000000000 0000000000000000
000000c0001c2cd8: 0000000000000000 0000000000000000
000000c0001c2ce8: 0000000000000000 0000000000000000
000000c0001c2cf8: <478882bf1e330a7e >d32669b5054179d9
000000c0001c2d08: 0000000000000000 0000000000000000
000000c0001c2d18: 0000000000000000 41cab01ac6de082f
000000c0001c2d28: b892a3226ac6c35d 0000000000000000
000000c0001c2d38: 0000000000000000 88d9935870d34805
000000c0001c2d48: 1b2f424819f18fa4 0000000000000000
000000c0001c2d58: 0000000000000000 549bb81db167bef5
000000c0001c2d68: 3e1298d7ab4da028 0000000000000000
000000c0001c2d78: 0000000000000000 000000c000452df0
000000c0001c2d88: 00000000004bc4d5 <internal/poll.(*FD).Read+485> 000000c0004459e0
000000c0001c2d98: 000000c0004dfe00 0000000000020000
000000c0001c2da8: 0000000000020000 0000000000020000
000000c0001c2db8: 0000000000000000 0000000000000000
000000c0001c2dc8: 000000c000000180 0000000000020000
000000c0001c2dd8: 000000c0004459f8 000000c0004459e0
000000c0001c2de8: 0000000000776340 000000c000452e20
000000c0001c2df8: 00000000004477cc <runtime.makeslice+108>
fatal error: unknown caller pc
runtime stack:
runtime.throw(0x764701, 0x11)
/home/myitcv/dev/go/src/runtime/panic.go:1106 +0x72
runtime.gentraceback(0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0xc000000180, 0x0, 0x0, 0x7fffffff, 0x7764d8, 0xc000057b08, 0x0, ...)
/home/myitcv/dev/go/src/runtime/traceback.go:273 +0x19fb
runtime.copystack(0xc000000180, 0x4000)
/home/myitcv/dev/go/src/runtime/stack.go:888 +0x291
runtime.shrinkstack(0xc000000180)
/home/myitcv/dev/go/src/runtime/stack.go:1140 +0x128
runtime.scanstack(0xc000000180, 0xc00002de90)
/home/myitcv/dev/go/src/runtime/mgcmark.go:712 +0x538
runtime.markroot.func1()
/home/myitcv/dev/go/src/runtime/mgcmark.go:228 +0xbf
runtime.markroot(0xc00002de90, 0x5)
/home/myitcv/dev/go/src/runtime/mgcmark.go:201 +0x2f3
runtime.gcDrain(0xc00002de90, 0x7)
/home/myitcv/dev/go/src/runtime/mgcmark.go:1001 +0x107
runtime.gcBgMarkWorker.func2()
/home/myitcv/dev/go/src/runtime/mgc.go:1964 +0x169
runtime.systemstack(0x0)
/home/myitcv/dev/go/src/runtime/asm_amd64.s:370 +0x66
runtime.mstart()
/home/myitcv/dev/go/src/runtime/proc.go:1077
goroutine 33 [GC worker (idle)]:
runtime.systemstack_switch()
/home/myitcv/dev/go/src/runtime/asm_amd64.s:330 fp=0xc000098760 sp=0xc000098758 pc=0x45d5a0
runtime.gcBgMarkWorker(0xc00002c800)
/home/myitcv/dev/go/src/runtime/mgc.go:1928 +0x1be fp=0xc0000987d8 sp=0xc000098760 pc=0x41b65e
runtime.goexit()
/home/myitcv/dev/go/src/runtime/asm_amd64.s:1375 +0x1 fp=0xc0000987e0 sp=0xc0000987d8 pc=0x45f531
created by runtime.gcBgMarkStartWorkers
/home/myitcv/dev/go/src/runtime/mgc.go:1822 +0x77
goroutine 1 [GC assist marking (scan)]:
runtime: unexpected return pc for runtime.systemstack_switch called from 0x478882bf1e330a7e
stack: frame={sp:0xc0001c2cf8, fp:0xc0001c2d00} stack=[0xc0001c0000,0xc0001c4000)
000000c0001c2bf8: 0000000000000000 0000000000000000
000000c0001c2c08: 0000000000000000 0000000000000000
000000c0001c2c18: 0000000000000000 0000000000000000
000000c0001c2c28: 0000000000000000 0000000000000000
000000c0001c2c38: 0000000000000000 0000000000000000
000000c0001c2c48: 0000000000000000 0000000000000000
000000c0001c2c58: 0000000000000000 0000000000000000
000000c0001c2c68: 0000000000000000 0000000000000000
000000c0001c2c78: 0000000000000000 0000000000000000
000000c0001c2c88: 0000000000000000 0000000000000000
000000c0001c2c98: 0000000000000000 0000000000000000
000000c0001c2ca8: 0000000000000000 0000000000000000
000000c0001c2cb8: 0000000000000000 0000000000000000
000000c0001c2cc8: 0000000000000000 0000000000000000
000000c0001c2cd8: 0000000000000000 0000000000000000
000000c0001c2ce8: 0000000000000000 0000000000000000
000000c0001c2cf8: <478882bf1e330a7e >d32669b5054179d9
000000c0001c2d08: 0000000000000000 0000000000000000
000000c0001c2d18: 0000000000000000 41cab01ac6de082f
000000c0001c2d28: b892a3226ac6c35d 0000000000000000
000000c0001c2d38: 0000000000000000 88d9935870d34805
000000c0001c2d48: 1b2f424819f18fa4 0000000000000000
000000c0001c2d58: 0000000000000000 549bb81db167bef5
000000c0001c2d68: 3e1298d7ab4da028 0000000000000000
000000c0001c2d78: 0000000000000000 000000c000452df0
000000c0001c2d88: 00000000004bc4d5 <internal/poll.(*FD).Read+485> 000000c0004459e0
000000c0001c2d98: 000000c0004dfe00 0000000000020000
000000c0001c2da8: 0000000000020000 0000000000020000
000000c0001c2db8: 0000000000000000 0000000000000000
000000c0001c2dc8: 000000c000000180 0000000000020000
000000c0001c2dd8: 000000c0004459f8 000000c0004459e0
000000c0001c2de8: 0000000000776340 000000c000452e20
000000c0001c2df8: 00000000004477cc <runtime.makeslice+108>
runtime: unexpected return pc for runtime.systemstack_switch called from 0x478882bf1e330a7e
stack: frame={sp:0xc0001c2cf8, fp:0xc0001c2d00} stack=[0xc0001c0000,0xc0001c4000)
000000c0001c2bf8: 0000000000000000 0000000000000000
000000c0001c2c08: 0000000000000000 0000000000000000
000000c0001c2c18: 0000000000000000 0000000000000000
000000c0001c2c28: 0000000000000000 0000000000000000
000000c0001c2c38: 0000000000000000 0000000000000000
000000c0001c2c48: 0000000000000000 0000000000000000
000000c0001c2c58: 0000000000000000 0000000000000000
000000c0001c2c68: 0000000000000000 0000000000000000
000000c0001c2c78: 0000000000000000 0000000000000000
000000c0001c2c88: 0000000000000000 0000000000000000
000000c0001c2c98: 0000000000000000 0000000000000000
000000c0001c2ca8: 0000000000000000 0000000000000000
000000c0001c2cb8: 0000000000000000 0000000000000000
000000c0001c2cc8: 0000000000000000 0000000000000000
000000c0001c2cd8: 0000000000000000 0000000000000000
000000c0001c2ce8: 0000000000000000 0000000000000000
000000c0001c2cf8: <478882bf1e330a7e >d32669b5054179d9
000000c0001c2d08: 0000000000000000 0000000000000000
000000c0001c2d18: 0000000000000000 41cab01ac6de082f
000000c0001c2d28: b892a3226ac6c35d 0000000000000000
000000c0001c2d38: 0000000000000000 88d9935870d34805
000000c0001c2d48: 1b2f424819f18fa4 0000000000000000
000000c0001c2d58: 0000000000000000 549bb81db167bef5
000000c0001c2d68: 3e1298d7ab4da028 0000000000000000
000000c0001c2d78: 0000000000000000 000000c000452df0
000000c0001c2d88: 00000000004bc4d5 <internal/poll.(*FD).Read+485> 000000c0004459e0
000000c0001c2d98: 000000c0004dfe00 0000000000020000
000000c0001c2da8: 0000000000020000 0000000000020000
000000c0001c2db8: 0000000000000000 0000000000000000
000000c0001c2dc8: 000000c000000180 0000000000020000
000000c0001c2dd8: 000000c0004459f8 000000c0004459e0
000000c0001c2de8: 0000000000776340 000000c000452e20
000000c0001c2df8: 00000000004477cc <runtime.makeslice+108>
runtime.systemstack_switch()
/home/myitcv/dev/go/src/runtime/asm_amd64.s:330
I've tentatively marked as a release blocked because it looks similar to #35328 and #35326
bcmills commented
aclements commented
This is almost certainly the same issue as #35689. Note the similarity between the bad words at the top of the stack (478882bf1e330a7e, d32669b5054179d9, etc) and the bad pointers in the stack trace from #35689 (637469796d2f656d).
My guess is that this is related to Linux 5.3.x, but waiting for confirmation in #35689.