golang/go

cmd/compile: random compile error running tests

myitcv opened this issue · 5 comments

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

$ go version
go version devel +0ac8739ad5 Mon Nov 18 15:11:03 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="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-build920574822=/tmp/go-build -gno-record-gcc-switches"

What did you do?

I just got a random failure running tests on govim:

$ go test -short -count=1 ./...
# github.com/govim/govim/cmd/govim/internal/golang_org_x_tools/lsp/source
cmd/govim/internal/golang_org_x_tools/lsp/source/symbols.go:206:18: internal compiler error: unexpected untyped expression: <node XXX>

goroutine 1 [running]:
runtime/debug.Stack(0x100a7a0, 0xc00000e018, 0x0)
        /home/myitcv/dev/go/src/runtime/debug/stack.go:24 +0x9d
cmd/compile/internal/gc.Fatalf(0xe5e7ec, 0x21, 0xc001d85c70, 0x1, 0x1)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/subr.go:193 +0x291
cmd/compile/internal/gc.convlit1(0xc001e8bd80, 0xc00039e780, 0xc00039e700, 0x0, 0xd1)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/const.go:269 +0x810
cmd/compile/internal/gc.convlit(0xc001e8bd80, 0xc00039e780, 0xc000af6e10)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/const.go:208 +0x43
cmd/compile/internal/gc.defaultlit2(0xc000af7590, 0xc001e8bd80, 0xc001e8bd00, 0x0, 0xc00072dd80)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/const.go:1135 +0x241
cmd/compile/internal/gc.typecheck1(0xc001e8be00, 0x12, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/typecheck.go:631 +0x1072
cmd/compile/internal/gc.typecheck(0xc001e8be00, 0x12, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/typecheck.go:300 +0x704
cmd/compile/internal/gc.typecheckas(0xc001e8be80)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/typecheck.go:3172 +0xa1
cmd/compile/internal/gc.typecheck1(0xc001e8be80, 0x1, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/typecheck.go:1900 +0x2fcc
cmd/compile/internal/gc.typecheck(0xc001e8be80, 0x1, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/typecheck.go:300 +0x704
cmd/compile/internal/gc.walkrange(0xc00072de00, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/range.go:443 +0x72f
cmd/compile/internal/gc.walkstmt(0xc00072de00, 0xc001e80980)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:344 +0xba5
cmd/compile/internal/gc.walkstmtlist(0xc000ae62d0, 0x5, 0x6)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:80 +0x46
cmd/compile/internal/gc.walkstmt(0xc00072dc80, 0xc000ae62d8)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:262 +0xffe
cmd/compile/internal/gc.walkrange(0xc00072dc80, 0x0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/range.go:452 +0x7e4
cmd/compile/internal/gc.walkstmt(0xc00072dc80, 0xc001e80900)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:344 +0xba5
cmd/compile/internal/gc.walkstmtlist(0xc000afc400, 0x30, 0x40)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:80 +0x46
cmd/compile/internal/gc.walkstmt(0xc00072cd80, 0xc00072ce00)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:262 +0xffe
cmd/compile/internal/gc.walkstmtlist(0xc000aea240, 0x7, 0x8)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:80 +0x46
cmd/compile/internal/gc.walkstmt(0xc00072cc80, 0xc001e80380)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:266 +0x10f6
cmd/compile/internal/gc.walkstmtlist(0xc001e82000, 0x4a, 0x80)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:80 +0x46
cmd/compile/internal/gc.walk(0xc0005bec60)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/walk.go:64 +0x3b0
cmd/compile/internal/gc.compile(0xc0005bec60)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/pgen.go:236 +0x6b
cmd/compile/internal/gc.funccompile(0xc0005bec60)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/pgen.go:222 +0xc1
cmd/compile/internal/gc.Main(0xe6ebd0)
        /home/myitcv/dev/go/src/cmd/compile/internal/gc/main.go:714 +0x3299
main.main()
        /home/myitcv/dev/go/src/cmd/compile/main.go:50 +0xac
ok      github.com/govim/govim  1.797s

Could not reproduce this by re-running the same command.

What did you expect to see?

No error

What did you see instead?

Compile error

Possibly, likely related to #35689 and friends.

CC @mdempsky @aclements @mknyszek @ianlancetaylor @bcmills

Very, very similar to #35621 in particular, but it too is in that same set of memory-corruption items. In #35621, n.Type was zeroed (I think), but in yours, n.Op was.

Out of curiosity, what is your kernel version?(#35326 (comment)) Oh, I'm an idiot. You're in that table as 5.3 as well.

@myitcv, have you seen this again? I'm betting this is part of the memory corruption super-bug, but there isn't a smoking gun in the backtrace.

Nope, haven't seen this again. And per above also unable to reproduce.

Of the issues that fall under the umbrella of #35777, the only once I've seen more than once is #35326. Indeed that's the only one I can reproduce.

Thanks. Since this isn't reproducible, I'm going to close this in favor of the super-bug.