-
Notifications
You must be signed in to change notification settings - Fork 18k
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
Comments
Also a non-trybot compiler crash: https://build.golang.org/log/9fc746798fd4e909296ec1000d07598e240cc80a
|
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. |
Paging Dr. @aclements. Maybe related: bogus race reports in #15739? |
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. |
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. |
Perhaps a change in something that was inlined? In
both errors (in separate files) are complaining about the same root cause, the equivalent of
That scrap of tree in the error message is the unexpected dst from escape analysis. |
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:
Second:
Third:
|
Interestingly, those last two panics have identical stack traces (ignoring argument values). |
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). |
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. |
@mdempsky want to kick off another round of millions of compiles to see whether this looks fixed by the other liveness fixes? |
@josharian Running again at 3ba3155. |
@mdempsky, any results from your run? |
@aclements 250k compiles of math/big, but no crashes. |
@mdempsky, okay. Since you had 3 failures in 544k math/big compiles before, let's let it keep going. |
@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 :) |
@aclements I've run about 1017k compiles now without any failures. |
Good enough for me! |
Seen on a trybot run:
https://storage.googleapis.com/go-build-log/571e0937/freebsd-amd64-gce101_a4100224.log
/cc @randall77 @dr2chase @mdempsky
The text was updated successfully, but these errors were encountered: