-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: unexpected signal during async preemption on windows/amd64 #44679
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
Comments
Looking more carefully, func wantAsyncPreempt(gp *g) bool {
// Check both the G and the P.
return (gp.preempt || gp.m.p != 0 && gp.m.p.ptr().preempt) && readgstatus(gp)&^_Gscan == _Grunning
} Is this panicking because gp.m.p.ptr() points somewhere bogus? |
Ahhh more likely is that gp is bogus. That comes from: // Does it want a preemption and is it safe to preempt?
gp := gFromSP(mp, c.sp())
if wantAsyncPreempt(gp) { |
@rsc might be an issue with ece954d#diff-fc175f04ebb256c1d34c14d27b8915f38928b71df55a35bfbd86fcb4618ff5a9 Maybe it's simply enough to check for nil... I'll send a CL. |
Change https://golang.org/cl/297390 mentions this issue: |
I've deployed https://golang.org/cl/297390 and it evidently fixes the crash users were seeing. |
@gopherbot add OS-Windows |
Is https://build.golang.org/log/995be8dc15fe8289ca78257701e522e5b5d51336 ( |
Another |
Looks familiar. https://golang.org/cl/297390 fixes the issue, but I'm not able to reproduce it myself to get more info supporting that CL. |
CC @cherrymui |
With @rsc's arm64 changes, I'm getting reports of crashes on amd64 involving signals during async preemption:
Cc @aclements who wrote preemption support.
The text was updated successfully, but these errors were encountered: