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

runtime: unexpected return pc for runtime.systemstack_switch #35592

Closed
myitcv opened this issue Nov 14, 2019 · 3 comments
Closed

runtime: unexpected return pc for runtime.systemstack_switch #35592

myitcv opened this issue Nov 14, 2019 · 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

@myitcv
Copy link
Member

myitcv commented Nov 14, 2019

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

cc @randall77 @aclements

@myitcv myitcv added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker labels Nov 14, 2019
@agnivade agnivade added this to the Go1.14 milestone Nov 15, 2019
@bcmills
Copy link
Contributor

bcmills commented Nov 20, 2019

@aclements
Copy link
Member

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.

@aclements
Copy link
Member

Kernel version confirmed. Folding into the super-bug (#35777).

@golang golang locked and limited conversation to collaborators Nov 21, 2020
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

5 participants