-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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: fatal error: checkdead: runnable g [1.13 backport] #40503
Comments
I believe this should affect 1.13 as well. I'll see if I can reproduce and send a cherry-pick. |
Thanks Michael! |
So I've been unable to reproduce this on 1.13, though I believe it is still affected. In general, the racing startm call must come from sysmon, as most other calls come from M's considered "running" by checkdead and would thus not trigger the throw. In 1.14+, sysmon is partially responsible for handling timers, so the timer expiration startm is an easy place for this race to occur. In 1.13, sysmon was not responsible for timers, thus that startm doesn't exist, but there are two others: one for netpoll, and one for forcegc. Ironically, the netpoll case already handles this exact problem from #6070, which I hadn't noticed before now. I may be able to clean those up in 1.16 that we have another approach to this. The forcegc should be subject to this problem, but it only runs every 2 minutes, so it is extremely rare. I'll still send the backport patch for consideration for this case, though I'm not sure how important it is. |
(I've filed #40518 to clean this up for 1.16). |
Change https://golang.org/cl/246199 mentions this issue: |
I agree with your assessment that the possibility of this bug in 1.13 seems so astronomically small that I'm not sure it's worth fixing, but I'll leave the final decision to the release team. |
Approving. Even though it's astronomically small, we try to keep both versions at the same level of support for fixes. |
Go 1.13 is no longer supported per release policy, so this backport issue is no longer needed and can be closed. |
In a Go release meeting, we noticed issue #40368 likely affects Go 1.13 as well. This needs to be confirmed, and if so, this is the tracking issue for #40368 to be considered for backport to the next 1.13 minor release.
Including a copy of the rationale to backport from the 1.14 tracking issue #40398:
/cc @prattmic @aclements @cagedmantis @toothrot
The text was updated successfully, but these errors were encountered: