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: compiler crash #15776

Closed
bradfitz opened this issue May 20, 2016 · 18 comments
Closed

cmd/compile: compiler crash #15776

bradfitz opened this issue May 20, 2016 · 18 comments

Comments

@bradfitz
Copy link
Contributor

Seen on a trybot run:

https://storage.googleapis.com/go-build-log/571e0937/freebsd-amd64-gce101_a4100224.log

freebsd-amd64-gce101 at 571e09379c5243f5dd1b6a69eeb42ffe5c20651d
....

##### Testing race detector
# crypto/elliptic
dst [0xc42003db00]
.   LITERAL-0 l(1248) tc(1) assigned int
.   .   LITERAL-0 l(1248) tc(1) int
crypto/elliptic/p224.go:88: cannot assign to int(0)
crypto/elliptic/p256_amd64.go:96: internal compiler error: escassign: unexpected dst

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /tmp/workdir/go/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x8cc2b7, 0x19, 0x0, 0x0, 0x0)
    /tmp/workdir/go/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.escassign(0xc4205297a0, 0xc42003db00, 0xc42003db00, 0x0)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:1015 +0xbd7
cmd/compile/internal/gc.escassignNilWhy(0xc4205297a0, 0xc42003db00, 0xc42003db00, 0x8c3b70, 0xb)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:976 +0x63
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4207b67e0, 0xc4207b6750)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:758 +0xeca
cmd/compile/internal/gc.esclist(0xc4205297a0, 0xc4207b0100, 0xc4207b6750)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4207b6750, 0xc4207b6510)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:620 +0xa7
cmd/compile/internal/gc.esclist(0xc4205297a0, 0xc4207b0120, 0xc4207b6510)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4207b6510, 0xc4207b6cf0)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:655 +0x245
cmd/compile/internal/gc.esclist(0xc4205297a0, 0xc4207b0640, 0xc4207b6cf0)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4207b6cf0, 0xc4205d6e10)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:620 +0xa7
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4205d6e10, 0xc4205d70e0)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:653 +0x1f7
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4205d70e0, 0xc4205d7170)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:653 +0x1f7
cmd/compile/internal/gc.esc(0xc4205297a0, 0xc4205d7170, 0xc4205d2990)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:653 +0x1f7
cmd/compile/internal/gc.esclist(0xc4205297a0, 0xc4205bd6a0, 0xc4205d2990)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.escfunc(0xc4205297a0, 0xc4205d2990)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:544 +0x1a7
cmd/compile/internal/gc.escAnalyze(0xc420564a80, 0x1, 0x4, 0xc420721b00)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:467 +0x47c
cmd/compile/internal/gc.(*bottomUpVisitor).visit(0xc420721ba8, 0xc4205d2990, 0xc400000034)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:106 +0x29e
cmd/compile/internal/gc.visitBottomUp(0xc4200e1c00, 0x5f, 0x80, 0x916ae8)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:62 +0xb7
cmd/compile/internal/gc.escapes(0xc4200e1c00, 0x5f, 0x80)
    /tmp/workdir/go/src/cmd/compile/internal/gc/esc.go:186 +0x41
cmd/compile/internal/gc.Main()
    /tmp/workdir/go/src/cmd/compile/internal/gc/main.go:447 +0x18e6
cmd/compile/internal/amd64.Main()
    /tmp/workdir/go/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /tmp/workdir/go/src/cmd/compile/main.go:33 +0x286

2016/05/20 20:49:43 Failed: exit status 2

/cc @randall77 @dr2chase @mdempsky

@bradfitz bradfitz added this to the Go1.7Maybe milestone May 20, 2016
@bradfitz
Copy link
Contributor Author

Also a non-trybot compiler crash:

https://build.golang.org/log/9fc746798fd4e909296ec1000d07598e240cc80a

darwin-386-10_10 at 85e39f838722a1521e09288cddfe378843d662fb
...
ok      log/syslog  2.121s
# math/big
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x15adf5]

goroutine 1 [running]:
panic(0x4cdfa0, 0x10998008)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/runtime/panic.go:500 +0x325
cmd/compile/internal/gc.nodedump(0x11802200, 0x0, 0x0, 0x0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/fmt.go:1525 +0x1795
cmd/compile/internal/gc.Nconv(0x11802200, 0x0, 0x0, 0x0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/fmt.go:1771 +0x10d
cmd/compile/internal/gc.Dump(0x4fb9dd, 0x9, 0x11802200)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/fmt.go:1823 +0x3b
cmd/compile/internal/gc.typecheck1(0x11802200, 0x1, 0x0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:279 +0xb93
cmd/compile/internal/gc.typecheck(0x11802200, 0x1, 0x0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:188 +0x5ff
cmd/compile/internal/gc.typecheckslice(0x110c0000, 0x1, 0x1, 0x1)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:49 +0x53
cmd/compile/internal/gc.typecheck1(0x12f324e0, 0x1, 0x12f32480)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:2021 +0xee33
cmd/compile/internal/gc.typecheck(0x12f324e0, 0x1, 0x12f32480)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:188 +0x5ff
cmd/compile/internal/gc.typecheckslice(0x12f20220, 0x6, 0x8, 0x1)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/typecheck.go:49 +0x53
cmd/compile/internal/gc.copyany(0x10fb5e60, 0x12f3b80c, 0x10fb5c00, 0x12f32120)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/walk.go:3031 +0xaf8
cmd/compile/internal/gc.walkexpr(0x10fb5e60, 0x12f3b80c, 0x0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/walk.go:1361 +0x96cf
cmd/compile/internal/gc.walkstmt(0x10fb5e60, 0x10fb5ce0)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/walk.go:193 +0x28a
cmd/compile/internal/gc.walkstmtlist(0x12c49c00, 0x65, 0x80)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/walk.go:81 +0x4b
cmd/compile/internal/gc.walk(0x10fb1f80)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/walk.go:66 +0x38b
cmd/compile/internal/gc.compile(0x10fb1f80)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/pgen.go:391 +0x79d
cmd/compile/internal/gc.funccompile(0x10fb1f80)
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/dcl.go:1278 +0x161
cmd/compile/internal/gc.Main()
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/gc/main.go:465 +0x1b98
cmd/compile/internal/x86.Main()
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/internal/x86/galign.go:80 +0x2d6
main.main()
    /private/var/folders/5h/sqs3zkxd12zclcslj67vccqh0000gp/T/workdir/go/src/cmd/compile/main.go:31 +0x111
ok      math    0.006s
FAIL    math/big [build failed]

@mdempsky
Copy link
Member

The stack traces are distinct enough that they seem like separate issues, but it seems surprising that we'd suddenly introduce two crasher bugs into the compiler.

@bradfitz
Copy link
Contributor Author

Paging Dr. @aclements.

Maybe related: bogus race reports in #15739?

@mdempsky
Copy link
Member

mdempsky commented May 20, 2016

The second stack trace doesn't look related to race detection.

I'm running those two compiles (math/big for freebsd/amd64, and crypto/elliptic for darwin/386) in a loop on my linux/amd64 workstation, but no repros yet.

Edit: 60k crypto/elliptic and 20k math/big compiles later and still no repros.

@aclements
Copy link
Member

I agree that these looks like completely unrelated bugs. The first one is an internal compiler check failing during escape analysis and the other is an outright crash during type checking.

The first one (escassign: unexpected dst) has never appeared on the dashboard.

The second one's a little hard to say, but it looks like it's never appeared except for the one time linked in the original post.

@dr2chase
Copy link
Contributor

Perhaps a change in something that was inlined? In

dst [0xc42003db00]
.   LITERAL-0 l(1248) tc(1) assigned int
.   .   LITERAL-0 l(1248) tc(1) int
crypto/elliptic/p224.go:88: cannot assign to int(0)
crypto/elliptic/p256_amd64.go:96: internal compiler error: escassign: unexpected dst

both errors (in separate files) are complaining about the same root cause, the equivalent of

0 = something

That scrap of tree in the error message is the unexpected dst from escape analysis.

@mdempsky
Copy link
Member

mdempsky commented May 23, 2016

544k math/big and 1.57M crypto/elliptic compiles later, I've had three cmd/compile failures compiling math/big. (Edit: These compiles are at revision 85e39f8.)

First:

dst [0xb3b4f1]
.   XXX x(0+0)
./int.go:533: internal compiler error: escassign: unexpected dst

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/google/home/mdempsky/wd/go/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x8ce17c, 0x19, 0x0, 0x0, 0x0)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.escassign(0xc420599440, 0xb3b4f1, 0xc420bf8e10, 0x0)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:1015 +0xbd7
cmd/compile/internal/gc.escassignNilWhy(0xc420599440, 0xb3b4f1, 0xc420bf8e10, 0x8c5954, 0xb)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:976 +0x63
cmd/compile/internal/gc.esc(0xc420599440, 0xc420bf9ef0, 0xc4203ecf30)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:758 +0xec7
cmd/compile/internal/gc.esclist(0xc420599440, 0xc420404740, 0xc4203ecf30)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc420599440, 0xc4203ecf30, 0xc420bf9a70)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:620 +0xa7
cmd/compile/internal/gc.esclist(0xc420599440, 0xc420431780, 0xc420bf9a70)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc420599440, 0xc420bf9a70, 0xc4207fa3f0)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:656 +0x26f
cmd/compile/internal/gc.esclist(0xc420599440, 0xc4207e7120, 0xc4207fa3f0)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.esc(0xc420599440, 0xc4207fa3f0, 0xc4207f5200)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:655 +0x248
cmd/compile/internal/gc.esclist(0xc420599440, 0xc4207e73c0, 0xc4207f5200)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:602 +0x5a
cmd/compile/internal/gc.escfunc(0xc420599440, 0xc4207f5200)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:544 +0x1a7
cmd/compile/internal/gc.escAnalyze(0xc420970a10, 0x1, 0xe, 0xc420a75600)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:467 +0x47c
cmd/compile/internal/gc.(*bottomUpVisitor).visit(0xc420a75ba8, 0xc4207f5200, 0xfc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:106 +0x29e
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4209ef680, 0xfc, 0xc4000000fc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:137 +0x164
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4209ef710, 0xfc, 0xc420a75ba8)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:126 +0x8b
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4209d7060, 0xc4000000fc, 0xfc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4209efb00, 0xfc, 0xfc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:124 +0x44
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4209d7240, 0xfc, 0xfc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4209ee990, 0xfc, 0xd9b8396e000000fc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:128 +0xd3
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4209d7260, 0xfc, 0xc4000000fc)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4209ed170, 0xfc, 0x40a2c3)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:127 +0xaf
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4209d72a0, 0xc4000000fc, 0xc420a75894)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visit(0xc420a75ba8, 0xc4209ece10, 0xfa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:80 +0x12c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4205e8120, 0xfa, 0xfa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:137 +0x164
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4205de760, 0xfa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4205e70e0, 0xfa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:128 +0xd3
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4205de7a0, 0xfa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4205e5830, 0xfa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:127 +0xaf
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4205de800, 0xfa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4205e4fc0, 0xfa, 0xc420a75ba8)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:128 +0xd3
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4205de960, 0xc4000000fa, 0xc4000000fa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visitcode(0xc420a75ba8, 0xc4205e4f30, 0xfa, 0xfa)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:127 +0xaf
cmd/compile/internal/gc.(*bottomUpVisitor).visitcodelist(0xc420a75ba8, 0xc4205de9c0, 0xc4000000fa, 0xc420a75b34)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:114 +0x5c
cmd/compile/internal/gc.(*bottomUpVisitor).visit(0xc420a75ba8, 0xc4205e42d0, 0xc4000000f6)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:80 +0x12c
cmd/compile/internal/gc.visitBottomUp(0xc420871000, 0x147, 0x200, 0x918dc0)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:62 +0xb7
cmd/compile/internal/gc.escapes(0xc420871000, 0x147, 0x200)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/esc.go:186 +0x41
cmd/compile/internal/gc.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/main.go:447 +0x18f3
cmd/compile/internal/amd64.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/main.go:33 +0x286

Second:

./nat.go:82: internal compiler error: orderstmt NAME

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/google/home/mdempsky/wd/go/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x8c66ed, 0xc, 0xc420a7ca70, 0x1, 0x1)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.orderstmt(0xc420b9a510, 0xc420a7cf18)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:481 +0x2c45
cmd/compile/internal/gc.orderstmtlist(0xc420b920c0, 0xc420a7cf18)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderinit(0xc420b9aa20, 0xc420a7cf18)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:298 +0x2f
cmd/compile/internal/gc.orderstmt(0xc420b9aa20, 0xc420a7cf18)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:477 +0x76
cmd/compile/internal/gc.orderstmtlist(0xc42049c040, 0xc420a7cf18)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderblockNodes(0xc420b9a888)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:264 +0x49
cmd/compile/internal/gc.orderstmt(0xc420b9a870, 0xc420a7d868)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:694 +0xcfc
cmd/compile/internal/gc.orderstmtlist(0xc420b92220, 0xc420a7d868)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderinit(0xc420b9b050, 0xc420a7d868)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:298 +0x2f
cmd/compile/internal/gc.orderexpr(0xc420b9b050, 0xc420a7d868, 0xc420899290, 0xc420899290)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:992 +0x62
cmd/compile/internal/gc.orderstmt(0xc42089eab0, 0xc420a7d868)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:489 +0x33f7
cmd/compile/internal/gc.orderstmtlist(0xc42087dde0, 0xc420a7d868)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderblockNodes(0xc420899698)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:264 +0x49
cmd/compile/internal/gc.order(0xc420899680)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:56 +0xd6
cmd/compile/internal/gc.compile(0xc420899680)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/pgen.go:385 +0x19d
cmd/compile/internal/gc.funccompile(0xc420899680)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/dcl.go:1278 +0x17d
cmd/compile/internal/gc.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/main.go:465 +0x19a9
cmd/compile/internal/amd64.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/main.go:33 +0x286

Third:

./nat.go:82: internal compiler error: orderstmt NAME

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/google/home/mdempsky/wd/go/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x8c66ed, 0xc, 0xc421218a80, 0x1, 0x1)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.orderstmt(0xc420ba06c0, 0xc421218f28)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:481 +0x2c45
cmd/compile/internal/gc.orderstmtlist(0xc420b980a0, 0xc421218f28)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderinit(0xc420ba0bd0, 0xc421218f28)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:298 +0x2f
cmd/compile/internal/gc.orderstmt(0xc420ba0bd0, 0xc421218f28)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:477 +0x76
cmd/compile/internal/gc.orderstmtlist(0xc42177c500, 0xc421218f28)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderblockNodes(0xc420ba0a38)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:264 +0x49
cmd/compile/internal/gc.orderstmt(0xc420ba0a20, 0xc421219878)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:694 +0xcfc
cmd/compile/internal/gc.orderstmtlist(0xc420b98200, 0xc421219878)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderinit(0xc420ba1200, 0xc421219878)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:298 +0x2f
cmd/compile/internal/gc.orderexpr(0xc420ba1200, 0xc421219878, 0xc4208a3440, 0xc4208a3440)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:992 +0x62
cmd/compile/internal/gc.orderstmt(0xc4208a8c60, 0xc421219878)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:489 +0x33f7
cmd/compile/internal/gc.orderstmtlist(0xc420887dc0, 0xc421219878)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:245 +0x50
cmd/compile/internal/gc.orderblockNodes(0xc4208a3848)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:264 +0x49
cmd/compile/internal/gc.order(0xc4208a3830)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/order.go:56 +0xd6
cmd/compile/internal/gc.compile(0xc4208a3830)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/pgen.go:385 +0x19d
cmd/compile/internal/gc.funccompile(0xc4208a3830)
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/dcl.go:1278 +0x17d
cmd/compile/internal/gc.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/gc/main.go:465 +0x19a9
cmd/compile/internal/amd64.Main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /usr/local/google/home/mdempsky/wd/go/src/cmd/compile/main.go:33 +0x286

@mdempsky
Copy link
Member

Interestingly, those last two panics have identical stack traces (ignoring argument values).

@rsc
Copy link
Contributor

rsc commented May 27, 2016

When I was working on the liveness code I did find a function in the compiler that was being miscompiled by the same bug. It could be that (#15747).

@rsc
Copy link
Contributor

rsc commented May 27, 2016

To be clear, "miscompiled" means the liveness bitmaps were not quite right. That could manifest as flaky corruption like here. If the timing looks right, I'd say wait for my fix to land and see if this happens again.

@josharian
Copy link
Contributor

@mdempsky want to kick off another round of millions of compiles to see whether this looks fixed by the other liveness fixes?

@mdempsky
Copy link
Member

mdempsky commented Jun 7, 2016

@josharian Running again at 3ba3155.

@aclements
Copy link
Member

@mdempsky, any results from your run?

@mdempsky
Copy link
Member

mdempsky commented Jun 7, 2016

@aclements 250k compiles of math/big, but no crashes.

@aclements
Copy link
Member

@mdempsky, okay. Since you had 3 failures in 544k math/big compiles before, let's let it keep going.

@aclements
Copy link
Member

@mdempsky, let's aim for ~550k compiles with no failures, since that should give us 95% certainty that the issue is no longer reproducible (840k will give us 99% if you're willing to give it the cycles :)

@mdempsky
Copy link
Member

mdempsky commented Jun 8, 2016

@aclements I've run about 1017k compiles now without any failures.

@aclements
Copy link
Member

Good enough for me!

@golang golang locked and limited conversation to collaborators Jun 8, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants