An interpreter can start running during _interpreters.destroy
#127041
Labels
3.13
bugs and security fixes
3.14
new features, bugs and security fixes
extension-modules
C modules in the Modules dir
topic-subinterpreters
type-crash
A hard crash of the interpreter, possibly with a core dump
Crash report
What happened?
Now that gh-126914 is out of the way, we can try and deal with some of the other issues related to multithreading and subinterpreters that couldn't get dealt with before. Namely, the
is_running_main
inside_interpreters.destroy
doesn't account for the fact that the interpreter could start running again by another thread after that check has already passed.Quick reproducer:
I think the simplest fix would be to just disallow a subinterpreter from ever set "running main" again after that check has finished. I implemented this already in the (closed) gh-126696, but I'd like to try and refactor that a bit before just copying things over to a new PR.
cc @ericsnowcurrently, let me know if you have a better approach.
CPython versions tested on:
3.13, 3.14, CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
No response
Linked PRs
The text was updated successfully, but these errors were encountered: