golang/go

cmd/compile/internal/gc: FAIL: TestReproducibleBuilds; runtime: unexpected return pc for cmd/compile/internal/ssa.Compile called from 0x0

mewmew opened this issue · 2 comments

What version of Go are you using (go version)?

$ go version

go version devel +8054b13536 Thu Nov 28 15:16:27 2019 +0000 linux/amd64

Does this issue reproduce with the latest release?

Yes.

What operating system and processor architecture are you using (go env)?

go env Output
$ go env

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/u/.cache/go-build"
GOENV="/home/u/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/u/goget:/home/u/Desktop/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/u/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/u/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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-build045730036=/tmp/go-build -gno-record-gcc-switches"

What did you do?

  1. pull latest commit of Go and build by running src/all.bash.

What did you expect to see?

Successful build and passing test cases.

What did you see instead?

--- FAIL: TestReproducibleBuilds (0.00s)
    --- FAIL: TestReproducibleBuilds/issue30202.go (0.13s)
        reproduciblebuilds_test.go:46: failed to compile: exit status 1
            runtime: unexpected return pc for cmd/compile/internal/ssa.Compile called from 0x0
            stack: frame={sp:0xc0003abd38, fp:0xc0003abd40} stack=[0xc0003a8000,0xc0003ac000)
            000000c0003abc38:  0000000000000000  0000000000000000 
            000000c0003abc48:  0000000000000000  0000000000000000 
            000000c0003abc58:  0000000000000000  0000000000000000 
            000000c0003abc68:  0000000000000000  0000000000000000 
            000000c0003abc78:  0000000000000000  0000000000000000 
            000000c0003abc88:  0000000000000000  0000000000000000 
            000000c0003abc98:  0000000000000000  0000000000000000 
            000000c0003abca8:  0000000000000000  0000000000000000 
            000000c0003abcb8:  0000000000000000  0000000000000000 
            000000c0003abcc8:  0000000000000000  0000000000000000 
            000000c0003abcd8:  0000000000000000  0000000000000000 
            000000c0003abce8:  0000000000000000  0000000000000000 
            000000c0003abcf8:  0000000000000000  0000000000000000 
            000000c0003abd08:  0000000000000000  0000000000000000 
            000000c0003abd18:  0000000000000000  0000000000000000 
            000000c0003abd28:  0000000000000000  0000000000000000 
            000000c0003abd38: <0000000000000000 >0000000000000000 
            000000c0003abd48:  0000000000000000  0000000000000000 
            000000c0003abd58:  bfe62e42fefa39ef  0000000000000000 
            000000c0003abd68:  4d6c6f72746e6f43  6f6e3d7265747361 
            000000c0003abd78:  697773442d206575  75616665642e676e 
            000000c0003abd88:  6f633d66616c746c  616a2e6e75732e6d 
            000000c0003abd98:  676e6977732e6176  74672e66616c702e 
            000000c0003abda8:  6f6f4c4b54472e6b  6c656546646e416b 
            000000c0003abdb8:  752f656d6f682f3a  3a6e69622f6f672f 
            000000c0003abdc8:  2f752f656d6f682f  2f706f746b736544 
            000000c0003abdd8:  2f3a6e69622f6f67  672f752f656d6f68 
            000000c0003abde8:  6e69622f7465676f  6f6c2f7273752f3a 
            000000c0003abdf8:  6e6962732f6c6163  6f6c2f7273752f3a 
            000000c0003abe08:  3a6e69622f6c6163  6e69622f7273752f 
            000000c0003abe18:  696c2f7273752f3a  65642f6d766a2f62 
            000000c0003abe28:  69622f746c756166  622f7273752f3a6e 
            000000c0003abe38:  0000000000000000 
            fatal error: unknown caller pc
            
            runtime stack:
            runtime.throw(0xe52c2c, 0x11)
                /home/u/go/src/runtime/panic.go:1106 +0x72
            runtime.gentraceback(0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0xc000082c00, 0x0, 0x0, 0x7fffffff, 0xe6f610, 0x7ffec72cf848, 0x0, ...)
                /home/u/go/src/runtime/traceback.go:273 +0x19fb
            runtime.copystack(0xc000082c00, 0x4000)
                /home/u/go/src/runtime/stack.go:888 +0x291
            runtime.newstack()
                /home/u/go/src/runtime/stack.go:1043 +0x20b
            runtime.morestack()
                /home/u/go/src/runtime/asm_amd64.s:449 +0x8f
            
            goroutine 20 [copystack]:
            runtime: unexpected return pc for cmd/compile/internal/ssa.Compile called from 0x0
            stack: frame={sp:0xc0003abd38, fp:0xc0003abd40} stack=[0xc0003a8000,0xc0003ac000)
            000000c0003abc38:  0000000000000000  0000000000000000 
            000000c0003abc48:  0000000000000000  0000000000000000 
            000000c0003abc58:  0000000000000000  0000000000000000 
            000000c0003abc68:  0000000000000000  0000000000000000 
            000000c0003abc78:  0000000000000000  0000000000000000 
            000000c0003abc88:  0000000000000000  0000000000000000 
            000000c0003abc98:  0000000000000000  0000000000000000 
            000000c0003abca8:  0000000000000000  0000000000000000 
            000000c0003abcb8:  0000000000000000  0000000000000000 
            000000c0003abcc8:  0000000000000000  0000000000000000 
            000000c0003abcd8:  0000000000000000  0000000000000000 
            000000c0003abce8:  0000000000000000  0000000000000000 
            000000c0003abcf8:  0000000000000000  0000000000000000 
            000000c0003abd08:  0000000000000000  0000000000000000 
            000000c0003abd18:  0000000000000000  0000000000000000 
            000000c0003abd28:  0000000000000000  0000000000000000 
            000000c0003abd38: <0000000000000000 >0000000000000000 
            000000c0003abd48:  0000000000000000  0000000000000000 
            000000c0003abd58:  bfe62e42fefa39ef  0000000000000000 
            000000c0003abd68:  4d6c6f72746e6f43  6f6e3d7265747361 
            000000c0003abd78:  697773442d206575  75616665642e676e 
            000000c0003abd88:  6f633d66616c746c  616a2e6e75732e6d 
            000000c0003abd98:  676e6977732e6176  74672e66616c702e 
            000000c0003abda8:  6f6f4c4b54472e6b  6c656546646e416b 
            000000c0003abdb8:  752f656d6f682f3a  3a6e69622f6f672f 
            000000c0003abdc8:  2f752f656d6f682f  2f706f746b736544 
            000000c0003abdd8:  2f3a6e69622f6f67  672f752f656d6f68 
            000000c0003abde8:  6e69622f7465676f  6f6c2f7273752f3a 
            000000c0003abdf8:  6e6962732f6c6163  6f6c2f7273752f3a 
            000000c0003abe08:  3a6e69622f6c6163  6e69622f7273752f 
            000000c0003abe18:  696c2f7273752f3a  65642f6d766a2f62 
            000000c0003abe28:  69622f746c756166  622f7273752f3a6e 
            000000c0003abe38:  0000000000000000 
            cmd/compile/internal/ssa.Compile(0x0)
                /home/u/go/src/cmd/compile/internal/ssa/compile.go:29 +0x159d fp=0xc0003abd40 sp=0xc0003abd38 pc=0x623abd
            created by cmd/compile/internal/gc.compileFunctions
                /home/u/go/src/cmd/compile/internal/gc/pgen.go:361 +0x128
            
            goroutine 1 [semacquire]:
            sync.runtime_Semacquire(0xc0000b6708)
                /home/u/go/src/runtime/sema.go:56 +0x42
            sync.(*WaitGroup).Wait(0xc0000b6700)
                /home/u/go/src/sync/waitgroup.go:130 +0x64
            cmd/compile/internal/gc.compileFunctions()
                /home/u/go/src/cmd/compile/internal/gc/pgen.go:373 +0x1ce
            cmd/compile/internal/gc.Main(0xe6e790)
                /home/u/go/src/cmd/compile/internal/gc/main.go:724 +0x33a5
            main.main()
                /home/u/go/src/cmd/compile/main.go:50 +0xac
            
            goroutine 19 [running]:
                goroutine running on other thread; stack unavailable
            created by cmd/compile/internal/gc.compileFunctions
                /home/u/go/src/cmd/compile/internal/gc/pgen.go:361 +0x128
FAIL
FAIL    cmd/compile/internal/gc 20.068s

Additional information

$ uname -a
Linux x220 5.3.13-arch1-1 #1 SMP PREEMPT Sun, 24 Nov 2019 10:15:50 +0000 x86_64 GNU/Linux

P.S. is this related to the "super-bug" #35777?

Edit: I re-ran all.bash a few times, and the error seems non-deterministic. After three runs, I got two crashes and one pass of all.bash. The first crash is reported above, and the second crash is as follows:

u@x220 ~/g/src> time ./all.bash
Building Go cmd/dist using /home/u/go1.4. (go1.4-bootstrap-20170531 linux/amd64)
Building Go toolchain1 using /home/u/go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.
# cmd/fix
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x569c9c]

goroutine 1 [running]:
runtime.throw(0x6b15c8, 0x5)
	/home/u/go/src/runtime/panic.go:1106 +0x72 fp=0xc002106d60 sp=0xc002106d30 pc=0x4322e2
runtime.sigpanic()
	/home/u/go/src/runtime/signal_unix.go:684 +0x3cc fp=0xc002106d90 sp=0xc002106d60 pc=0x4486ac
cmd/link/internal/ld.relocsym(0xc0006be000, 0xc000b21c70)
	/home/u/go/src/cmd/link/internal/ld/data.go:157 +0x10c fp=0xc002106ff0 sp=0xc002106d90 pc=0x569c9c
cmd/link/internal/ld.compressSyms(0xc0006be000, 0xc001fa0030, 0x199e, 0x2ffa, 0xc001fa0028, 0x1, 0x2ffb)
	/home/u/go/src/cmd/link/internal/ld/data.go:2463 +0x450 fp=0xc0021070d0 sp=0xc002106ff0 pc=0x57c160
cmd/link/internal/ld.dwarfcompress(0xc0006be000)
	/home/u/go/src/cmd/link/internal/ld/dwarf.go:1956 +0x15d fp=0xc002107200 sp=0xc0021070d0 pc=0x59648d
cmd/link/internal/ld.Main(0x88b2a0, 0x10, 0x20, 0x1, 0x7, 0x10, 0x6bc915, 0x1b, 0x6b89dc, 0x14, ...)
	/home/u/go/src/cmd/link/internal/ld/main.go:250 +0xcfa fp=0xc002107358 sp=0xc002107200 pc=0x5c543a
main.main()
	/home/u/go/src/cmd/link/main.go:68 +0x1bc fp=0xc002107f88 sp=0xc002107358 pc=0x637eac
runtime.main()
	/home/u/go/src/runtime/proc.go:203 +0x212 fp=0xc002107fe0 sp=0xc002107f88 pc=0x434852
runtime.goexit()
	/home/u/go/src/runtime/asm_amd64.s:1375 +0x1 fp=0xc002107fe8 sp=0xc002107fe0 pc=0x461351
go tool dist: FAILED: /home/u/go/pkg/tool/linux_amd64/go_bootstrap install -gcflags=all= -ldflags=all= std cmd: exit status 2
real 159.29
user 354.03
sys 28.87

Two crashes (unexpected return pc) and one pass when running all.bash on rev 8054b13.

Running with export GODEBUG=asyncpreemptoff=1, I no longer get crashes. At least not after three consecutive runs of all.bash.

Yep, this is the super-bug. Let's follow all activity on that bug.

Duplicate of #35777