-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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
runtime: crash on linux/arm64 with "invalid p state" on 1.13 #39252
Comments
If I’m understanding correctly, this reproduces reliably on 1.13, but not 1.14? Is that right? |
Yes |
@choury I tried the case on various arm64 machines with 'go1.13.11' but it didn't crash after 10min or so, how long should I expect the error to happen? Once ran into the same error with 'go tool dist test' but never reproduced it again, so want to try with your case. Thanks. |
go tool dist test:
It will crash within 10 min in docker |
@choury Thanks, I verified the case in golang:1.13.11 containers on two different models of machine, it didn't crash after dozens of minutes. Will update later if I'm able to reproduce the issue. |
crash.100.goroutines.txt The case from @choury produced random, and different, crashes with go 1.13.12 (the # of user goroutines ranges between 100 * 2 - 10000 * 2), enclosing several log files. |
wondering if it's related to #32912, whose fix is not in 1.13.12, trying to verify. |
After cherry-picking the following CLs to 1.13.12 we didn't observe any crash with multiple rounds of testing against the sample case, each running 24 hours at least. https://go-review.googlesource.com/c/go/+/192937 It's still a WA fix and the root cause is not clear to us. So far, the issue is specific to an in-house machine only, here are more details: After applying CL #192937 and #204519, the sample case still crashed randomly but was due to nil 'm' of the current 'g' all the time, then with CL #189418 the issue was gone. Typical stack traces of the nil 'm' issue:
"1346 gcw := &getg().m.p.ptr().gcw" of runtime.gcmarknewobject runs into the issue.
@cherrymui are the stack traces useful for helping narrow down the root cause? I could not make it reproducible on other arm64 machines anyway. Thanks a lot. |
closing as this only appears to affect 1.13 |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Not happened with 1.14, but also in 1.13.11
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Run this code
What did you expect to see?
No error, run forever...
What did you see instead?
crash with:
The text was updated successfully, but these errors were encountered: