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

cmd/compile: panic while compiling empty package in a loop #16726

Closed
felixge opened this issue Aug 16, 2016 · 25 comments
Closed

cmd/compile: panic while compiling empty package in a loop #16726

felixge opened this issue Aug 16, 2016 · 25 comments
Labels
FrozenDueToAge WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Milestone

Comments

@felixge
Copy link
Contributor

felixge commented Aug 16, 2016

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

go version go1.7 darwin/amd64

  1. What operating system and processor architecture are you using (go env)?
Mac OS 10.11.5 (15F34), MBP mid 2012
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/felix/code/go:/Users/felix/.gvm/pkgsets/go1.7/global"
GORACE=""
GOROOT="/Users/felix/.gvm/gos/go1.7"
GOTOOLDIR="/Users/felix/.gvm/gos/go1.7/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/k3/fmtp404j2gg42s6tx04cw_t40000gn/T/go-build855461703=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
  1. What did you do?
mkdir foo
cd foo
echo "package foo" > foo.go
while go test -a .; do :; done
  1. What did you expect to see?
$ while go build -a .; do :; done
[no output the pkg recompiles forever]
  1. What did you see instead?

A race condition causing some builds to fail with internal compiler errors. Two examples below:

$ while go build -a .; do :; done
# runtime
../../../.gvm/gos/go1.7/src/runtime/proc.go:314: internal compiler error: panic during generic cse while compiling releaseSudog:

runtime error: index out of range

goroutine 1 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc42399ecf8, 0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:35 +0xc8
panic(0x4b7320, 0xc420014180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*partitionByDom).Less(0xc422399530, 0x0, 0x1884733779, 0x2)
    <autogenerated>:144 +0xda
sort.medianOfThree(0x6cf9c0, 0xc422399530, 0x0, 0x1884733779, 0x3108e66ef2)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:74 +0x49
sort.doPivot(0x6cf9c0, 0xc422399530, 0x0, 0xc42399bbc8, 0xc4223a4420, 0x2)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:99 +0x601
sort.quickSort(0x6cf9c0, 0xc422399530, 0x0, 0xc42399bbc8, 0x4f)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:188 +0x83
sort.Sort(0x6cf9c0, 0xc422399530)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:222 +0x80
cmd/compile/internal/ssa.cse(0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/cse.go:140 +0x10ab
cmd/compile/internal/ssa.Compile(0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc420ece090, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc420ece090)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc420ece090)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:467 +0x1a02
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3



goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0x50a8b2, 0x2c, 0xc420b80080, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/subr.go:165 +0x15d
cmd/compile/internal/gc.(*ssaExport).Fatalf(0x760786, 0x4f9c, 0x50a8b2, 0x2c, 0xc420b80080, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:4437 +0x74
cmd/compile/internal/ssa.(*Config).Fatalf(0xc422524000, 0xc400004f9c, 0x50a8b2, 0x2c, 0xc420b80080, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/config.go:200 +0x6e
cmd/compile/internal/ssa.(*Func).Fatalf(0xc42352cf00, 0x50a8b2, 0x2c, 0xc420b80080, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/func.go:397 +0x6b
cmd/compile/internal/ssa.Compile.func1(0xc42399ecf8, 0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:37 +0x25b
panic(0x4b7320, 0xc420014180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*partitionByDom).Less(0xc422399530, 0x0, 0x1884733779, 0x2)
    <autogenerated>:144 +0xda
sort.medianOfThree(0x6cf9c0, 0xc422399530, 0x0, 0x1884733779, 0x3108e66ef2)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:74 +0x49
sort.doPivot(0x6cf9c0, 0xc422399530, 0x0, 0xc42399bbc8, 0xc4223a4420, 0x2)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:99 +0x601
sort.quickSort(0x6cf9c0, 0xc422399530, 0x0, 0xc42399bbc8, 0x4f)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:188 +0x83
sort.Sort(0x6cf9c0, 0xc422399530)
    /Users/felix/.gvm/gos/go1.7/src/sort/sort.go:222 +0x80
cmd/compile/internal/ssa.cse(0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/cse.go:140 +0x10ab
cmd/compile/internal/ssa.Compile(0xc42352cf00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc420ece090, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc420ece090)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc420ece090)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:467 +0x1a02
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3

and

while go build -a .; do :; done

# runtime
../../../.gvm/gos/go1.7/src/runtime/alg.go:1: internal compiler error: panic during regalloc while compiling .eq."".stackmap:

runtime error: index out of range

goroutine 1 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc423f3fdf8, 0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:35 +0xc8
panic(0x4b7320, 0xc420014180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*regAllocState).regalloc(0xc42324ea00, 0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/regalloc.go:1405 +0x7566
cmd/compile/internal/ssa.regalloc(0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/regalloc.go:133 +0x83
cmd/compile/internal/ssa.Compile(0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc42324c480, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc42324c480)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc42324c480)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.geneq(0xc42323eb60, 0xc4218159f0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/alg.go:512 +0x7f3
cmd/compile/internal/gc.dalgsym(0xc4218159f0, 0xffffffffffffffff)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1497 +0x116e
cmd/compile/internal/gc.dcommontype(0xc42323ea10, 0x0, 0xc4218159f0, 0x7)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:821 +0xca
cmd/compile/internal/gc.dtypesym(0xc4218159f0, 0xc4218159f0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1300 +0xef0
cmd/compile/internal/gc.dtypesym(0xc4218daaa0, 0xc42346e690)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1284 +0xd37
cmd/compile/internal/gc.dumptypestructs()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbfdf35, 0x4c, 0x3)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3



goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0x50a8b2, 0x2c, 0xc423fd4280, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/subr.go:165 +0x15d
cmd/compile/internal/gc.(*ssaExport).Fatalf(0x760786, 0x1, 0x50a8b2, 0x2c, 0xc423fd4280, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:4437 +0x74
cmd/compile/internal/ssa.(*Config).Fatalf(0xc422410000, 0xc400000001, 0x50a8b2, 0x2c, 0xc423fd4280, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/config.go:200 +0x6e
cmd/compile/internal/ssa.(*Func).Fatalf(0xc422c79e00, 0x50a8b2, 0x2c, 0xc423fd4280, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/func.go:397 +0x6b
cmd/compile/internal/ssa.Compile.func1(0xc423f3fdf8, 0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:37 +0x25b
panic(0x4b7320, 0xc420014180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*regAllocState).regalloc(0xc42324ea00, 0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/regalloc.go:1405 +0x7566
cmd/compile/internal/ssa.regalloc(0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/regalloc.go:133 +0x83
cmd/compile/internal/ssa.Compile(0xc422c79e00)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc42324c480, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc42324c480)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc42324c480)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.geneq(0xc42323eb60, 0xc4218159f0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/alg.go:512 +0x7f3
cmd/compile/internal/gc.dalgsym(0xc4218159f0, 0xffffffffffffffff)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1497 +0x116e
cmd/compile/internal/gc.dcommontype(0xc42323ea10, 0x0, 0xc4218159f0, 0x7)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:821 +0xca
cmd/compile/internal/gc.dtypesym(0xc4218159f0, 0xc4218159f0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1300 +0xef0
cmd/compile/internal/gc.dtypesym(0xc4218daaa0, 0xc42346e690)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1284 +0xd37
cmd/compile/internal/gc.dumptypestructs()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbfdf35, 0x4c, 0x3)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3

I originally saw this error in the test suite of the project I'm working on. This is the minimal way I was able to reproduce it.

@dgryski
Copy link
Contributor

dgryski commented Aug 16, 2016

Is it possible to build the compiler with -race ? That might show some interesting output.

@josharian josharian changed the title internal compiler error: panic during [...] while compiling [...]: cmd/compile: panic while compiling empty package in a loop Aug 16, 2016
@randall77
Copy link
Contributor

@dr2chase : This smells like we're passing a bad ordering function to sort. Something wrong with the dominator ordering somehow? Didn't we fix something like this for types a while back?

@bradfitz bradfitz added this to the Go1.7.1 milestone Aug 16, 2016
@randall77
Copy link
Contributor

That second stack trace looks completely unrelated, though.
I haven't been able to reproduce so far on my linux/amd64 machine. How often do you see these crashes?

@dgryski
Copy link
Contributor

dgryski commented Aug 16, 2016

If it's not a data race, is there non-determinism coming from map key ordering?

@dgryski
Copy link
Contributor

dgryski commented Aug 16, 2016

Or are we seeing a modern version of http://www.bitwizard.nl/sig11/ ?

@randall77
Copy link
Contributor

4 hours later, still no crash. I'll try on my mac tonight.
Any clues on how to reproduce would be helpful.

@zeebo
Copy link
Contributor

zeebo commented Aug 16, 2016

FWIW I tried this for about 3 hours on my mac pro on 10.11.5 and no crash.

@felixge
Copy link
Contributor Author

felixge commented Aug 16, 2016

I played around with it a bit, and found that I can make the problem appear more frequently by making the compiler compile more pkgs of the stdlib.

That being said, even with the instructions below, it sometimes wouldn't crash, and I had to Ctrl+C and restart the loop in order to see it crash.

mkdir bar
cd bar
echo 'package bar; import _ "net/http"' > bar.go
while go build -a . && echo built; do :; done;

Example:

$ while go build -a . && echo built; do :; done;
built
built
built
# fmt
<autogenerated>:5: internal compiler error: panic during schedule while compiling State.Write:

runtime error: index out of range

goroutine 1 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc421043e00, 0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:35 +0xc8
panic(0x4b7320, 0xc420012180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.ValHeap.Less(0xc42108c000, 0x3, 0x4, 0xc4209378f0, 0x2a, 0x2a, 0xc4209378bf, 0x621049bc5f, 0x2a)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/schedule.go:40 +0xd2
cmd/compile/internal/ssa.(*ValHeap).Less(0xc4209378c0, 0xc4209378bf, 0x621049bc5f, 0x2a)
    <autogenerated>:172 +0x77
container/heap.up(0x6d02e0, 0xc4209378c0, 0xc4209378bf)
    /Users/felix/.gvm/gos/go1.7/src/container/heap/heap.go:93 +0x64
container/heap.Push(0x6d02e0, 0xc4209378c0, 0x4e2a80, 0xc420985128)
    /Users/felix/.gvm/gos/go1.7/src/container/heap/heap.go:54 +0x7e
cmd/compile/internal/ssa.schedule(0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/schedule.go:219 +0x77f
cmd/compile/internal/ssa.Compile(0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc42072e5a0, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc42072e5a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc42072e5a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.genwrapper(0xc4203f3ea0, 0xc4207e3700, 0xc42072c310, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/subr.go:1916 +0xa62
cmd/compile/internal/gc.imethods(0xc4203f3ea0, 0xc420a34460, 0x0, 0xc420a34564)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:413 +0x2e7
cmd/compile/internal/gc.dtypesym(0xc4203f3ea0, 0xc420cd4fe0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1207 +0x1303
cmd/compile/internal/gc.dtypesym(0xc420cd1cc0, 0xc420768538)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1174 +0x287
cmd/compile/internal/gc.dtypesym(0xc4203c8b40, 0xc420b029a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1210 +0x1344
cmd/compile/internal/gc.dumptypestructs()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbff015, 0x48, 0x3)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3



goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0x50a8b2, 0x2c, 0xc420728e40, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/subr.go:165 +0x15d
cmd/compile/internal/gc.(*ssaExport).Fatalf(0x760786, 0xc4b, 0x50a8b2, 0x2c, 0xc420728e40, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:4437 +0x74
cmd/compile/internal/ssa.(*Config).Fatalf(0xc420984000, 0xc400000c4b, 0x50a8b2, 0x2c, 0xc420728e40, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/config.go:200 +0x6e
cmd/compile/internal/ssa.(*Func).Fatalf(0xc420c004b0, 0x50a8b2, 0x2c, 0xc420728e40, 0x4, 0x4)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/func.go:397 +0x6b
cmd/compile/internal/ssa.Compile.func1(0xc421043e00, 0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:37 +0x25b
panic(0x4b7320, 0xc420012180)
    /Users/felix/.gvm/gos/go1.7/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.ValHeap.Less(0xc42108c000, 0x3, 0x4, 0xc4209378f0, 0x2a, 0x2a, 0xc4209378bf, 0x621049bc5f, 0x2a)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/schedule.go:40 +0xd2
cmd/compile/internal/ssa.(*ValHeap).Less(0xc4209378c0, 0xc4209378bf, 0x621049bc5f, 0x2a)
    <autogenerated>:172 +0x77
container/heap.up(0x6d02e0, 0xc4209378c0, 0xc4209378bf)
    /Users/felix/.gvm/gos/go1.7/src/container/heap/heap.go:93 +0x64
container/heap.Push(0x6d02e0, 0xc4209378c0, 0x4e2a80, 0xc420985128)
    /Users/felix/.gvm/gos/go1.7/src/container/heap/heap.go:54 +0x7e
cmd/compile/internal/ssa.schedule(0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/schedule.go:219 +0x77f
cmd/compile/internal/ssa.Compile(0xc420c004b0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc42072e5a0, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc42072e5a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc42072e5a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.genwrapper(0xc4203f3ea0, 0xc4207e3700, 0xc42072c310, 0x0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/subr.go:1916 +0xa62
cmd/compile/internal/gc.imethods(0xc4203f3ea0, 0xc420a34460, 0x0, 0xc420a34564)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:413 +0x2e7
cmd/compile/internal/gc.dtypesym(0xc4203f3ea0, 0xc420cd4fe0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1207 +0x1303
cmd/compile/internal/gc.dtypesym(0xc420cd1cc0, 0xc420768538)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1174 +0x287
cmd/compile/internal/gc.dtypesym(0xc4203c8b40, 0xc420b029a0)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1210 +0x1344
cmd/compile/internal/gc.dumptypestructs()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbff015, 0x48, 0x3)
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
    /Users/felix/.gvm/gos/go1.7/src/cmd/compile/main.go:33 +0x2a3

Is it possible to build the compiler with -race ? That might show some interesting output.

Not sure, I tried passing the -race flag to go build, but that didn't seem to have the desired effect.

@dgryski
Copy link
Contributor

dgryski commented Aug 17, 2016

Can you reproduce this on any other machine? Can you run a memory tester on the machine that is failing?

@felixge
Copy link
Contributor Author

felixge commented Aug 19, 2016

@dgryski I'm currently traveling, I'll try on another machine and run a memory test early next week.

@bradfitz bradfitz added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Aug 25, 2016
@bradfitz bradfitz modified the milestones: Unplanned, Go1.7.1 Aug 25, 2016
@bradfitz
Copy link
Contributor

Removing this from Milestone Go1.7.1 since nobody can reproduce. We're going to assume this is faulty hardware for now until we hear otherwise.

@felixge
Copy link
Contributor Author

felixge commented Aug 26, 2016

I just performed a memory test, see below:

image

I'll run the extended test over night.

@felixge
Copy link
Contributor Author

felixge commented Aug 29, 2016

I've now also performed the extended test, and it looks good as well:

image

I'll try to reproduce the problem on a different machine next.

@felixge
Copy link
Contributor Author

felixge commented Sep 21, 2016

I haven't been able to reproduce this on another machine yet. I'll get a new machine in a couple weeks, if the problem is gone on it, I'll close this issue and assume the current machine has some other HW issue.

@odeke-em
Copy link
Member

odeke-em commented Jan 3, 2017

Ping

@felixge
Copy link
Contributor Author

felixge commented Jan 4, 2017

@odeke-em are you having the same problem?

I finally have a new machine, and will try to run some comparison tests between the old and the new machine this week.

@odeke-em
Copy link
Member

@felixge nope, I was just pinging to see if there was an progress in reproducing the issue. Happy New Year!

@felixge
Copy link
Contributor Author

felixge commented Jan 14, 2017

Ok, done some more tests. The new 15" 2016 MBP I tested with does not have the problem.

My Mid 2012 15" still does. I'm now on Mac OS 10.12.2 and go version 1.7.4 with both machines.

So I think the issue is somehow specific to my machine. I'd love to understand why there haven't been issues with older Go versions, and what the actual issue is, but I'll close this issue for now.

I also plan to to wipe the disk on this machine and do a fresh reinstall next week. I'll provide another update if that ends up changing anything.

@felixge felixge closed this as completed Jan 14, 2017
@felixge
Copy link
Contributor Author

felixge commented Feb 15, 2017

I just had the battery and SSD in my MBP replaced by an official Apple Partner, setup Mac OS (10.12.3) and Go (1.7.5) from scratch. The repair shop also executed additional Apple-internal HW tests (including memory) and found no issue.

However, the problem still exists, see output below.

I guess there is still a chance that this is a HW issue, but I've never had issues with older versions of Go. So I think there is still a chance that this a regression in the Go compiler.

If anybody is interested, I could probably also make this machine available via ssh for debugging.

Otherwise I might try to dig a bit deeper myself as time allows.

$ while go test -a .; do :; done
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
?   	_/Users/felixge/Desktop/go-bug/foo	[no test files]
# runtime
/usr/local/Cellar/go/1.7.5/libexec/src/runtime/alg.go:1: internal compiler error: panic during regalloc while compiling .eq."".traceStackTable:

runtime error: index out of range

goroutine 1 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc42250bdf8, 0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/compile.go:35 +0xc8
panic(0x4b7ae0, 0xc420012140)
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*regAllocState).regalloc(0xc424e0a280, 0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/regalloc.go:1405 +0x7566
cmd/compile/internal/ssa.regalloc(0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/regalloc.go:133 +0x83
cmd/compile/internal/ssa.Compile(0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc424e00630, 0x0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc424e00630)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc424e00630)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.geneq(0xc424defa40, 0xc4217f0c80)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/alg.go:512 +0x7f3
cmd/compile/internal/gc.dalgsym(0xc4217f0c80, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1497 +0x116e
cmd/compile/internal/gc.dcommontype(0xc424dd1180, 0x0, 0xc4217f0c80, 0x7)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:821 +0xca
cmd/compile/internal/gc.dtypesym(0xc4217f0c80, 0xc4217f0c80)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1300 +0xef0
cmd/compile/internal/gc.dtypesym(0xc4217f1450, 0xc42293a1c0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1284 +0xd37
cmd/compile/internal/gc.dumptypestructs()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbfe57c, 0x4c, 0x3)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/main.go:33 +0x2a3



goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0x50b0af, 0x2c, 0xc424df7bc0, 0x4, 0x4)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/subr.go:165 +0x248
cmd/compile/internal/gc.(*ssaExport).Fatalf(0x761786, 0x1, 0x50b0af, 0x2c, 0xc424df7bc0, 0x4, 0x4)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/ssa.go:4437 +0x74
cmd/compile/internal/ssa.(*Config).Fatalf(0xc42252c000, 0xc400000001, 0x50b0af, 0x2c, 0xc424df7bc0, 0x4, 0x4)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/config.go:200 +0x6e
cmd/compile/internal/ssa.(*Func).Fatalf(0xc424d3f1d0, 0x50b0af, 0x2c, 0xc424df7bc0, 0x4, 0x4)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/func.go:397 +0x6b
cmd/compile/internal/ssa.Compile.func1(0xc42250bdf8, 0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/compile.go:37 +0x25b
panic(0x4b7ae0, 0xc420012140)
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/panic.go:458 +0x243
cmd/compile/internal/ssa.(*regAllocState).regalloc(0xc424e0a280, 0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/regalloc.go:1405 +0x7566
cmd/compile/internal/ssa.regalloc(0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/regalloc.go:133 +0x83
cmd/compile/internal/ssa.Compile(0xc424d3f1d0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/ssa/compile.go:64 +0x321
cmd/compile/internal/gc.buildssa(0xc424e00630, 0x0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/ssa.go:232 +0xc5f
cmd/compile/internal/gc.compile(0xc424e00630)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/pgen.go:405 +0x1377
cmd/compile/internal/gc.funccompile(0xc424e00630)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/dcl.go:1287 +0x186
cmd/compile/internal/gc.geneq(0xc424defa40, 0xc4217f0c80)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/alg.go:512 +0x7f3
cmd/compile/internal/gc.dalgsym(0xc4217f0c80, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1497 +0x116e
cmd/compile/internal/gc.dcommontype(0xc424dd1180, 0x0, 0xc4217f0c80, 0x7)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:821 +0xca
cmd/compile/internal/gc.dtypesym(0xc4217f0c80, 0xc4217f0c80)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1300 +0xef0
cmd/compile/internal/gc.dtypesym(0xc4217f1450, 0xc42293a1c0)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1284 +0xd37
cmd/compile/internal/gc.dumptypestructs()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/reflect.go:1369 +0xcc
cmd/compile/internal/gc.dumpobj1(0x7fff5fbfe57c, 0x4c, 0x3)
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/obj.go:133 +0x55f
cmd/compile/internal/gc.dumpobj()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/obj.go:45 +0x52
cmd/compile/internal/gc.Main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/gc/main.go:490 +0x1aa6
cmd/compile/internal/amd64.Main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/internal/amd64/galign.go:93 +0x2fa
main.main()
	/usr/local/Cellar/go/1.7.5/libexec/src/cmd/compile/main.go:33 +0x2a3

@felixge felixge reopened this Feb 15, 2017
@randall77
Copy link
Contributor

I'm not seeing how this second failure could happen (the one at regalloc.go:1405). At least, I'm not seeing how it could happen nondeterministically. The compiler is essentially a deterministic program, either it is going to hit this bug every time, or it isn't. Background GC is the only nondeterministic thing happening, and I guess it is possible that it has a bug somewhere. But I would expect such a generic bug to be hitting other programs, and we're not seeing that.

Thanks for all the help and bug reports. But unfortunately, I'm kinda stumped.

@felixge
Copy link
Contributor Author

felixge commented Feb 17, 2017

@randall77 I think I'll try to dig in deeper.

I decided to return the 2016 MBP because the touch bar is nightmare and it has other issues as well, so I'd very much like to believe my 2012 MBP HW isn't defect :).

Anyway, I'm okay with this ticket being closed again as well. My motivation to debug will probably be somewhat correlated with the frequency I run into this problem during normal development.

@mibk
Copy link
Contributor

mibk commented Feb 18, 2017

The only solution I have come up with is bisecting the crash to a single commit. If there were no issues with older versions of Go, there must be some CL responsible for this. I realize it's a ton of work to bisect this non-deterministic failure though.

@felixge
Copy link
Contributor Author

felixge commented Feb 20, 2017

@mibk I'm afraid bisecting won't be an option. The problem appeared since Go moved its compiler from C to Go, and IIRC Go <= 1.4 won't run on the latest version of macOS anymore due to some syscall/signal SNAFU.

@agnivade
Copy link
Contributor

agnivade commented Sep 7, 2018

@felixge - Just wanted to check in on this. Have you run into this again ? Could you try with 1.11 and see if there are any improvements ?

@felixge
Copy link
Contributor Author

felixge commented Sep 7, 2018

@agnivade I no longer have the HW (2012 MBP) that had this issue and can't reproduce it with my current HW (2017 MBP), so I'll close this issue now.

@felixge felixge closed this as completed Sep 7, 2018
@golang golang locked and limited conversation to collaborators Sep 7, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

9 participants