-
-
Notifications
You must be signed in to change notification settings - Fork 33.1k
gh-137007: Track executor before any possible deallocations #137016
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
base: main
Are you sure you want to change the base?
gh-137007: Track executor before any possible deallocations #137016
Conversation
executor->vm_data.warm = true; | ||
if (_PyJIT_Compile(executor, executor->trace, length)) { | ||
Py_DECREF(executor); | ||
return NULL; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to reviewers: the bad dealloc happens right above this line at line 1233/1238 depending on which diff you view.
There's no reproducer because I can't force _PyJIT_Compile to fail except in specific scenarios, or when the GC decides to kick in right when the executor is linked, but not yet tracked. |
Unfortunately the patch doesn't fix the issue for me. I double checked that it's applied and still get the abort. Investigating whether the diff necessary to reproduce is the same. |
…/cpython into track-before-deallocating
@devdanzin can you please try again? |
Still aborting here. Does it stop reproducing for you? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the other PR, when allocating the cold executor, there is an error path before making it immortal. Should we track the cold executor before it is immortal and untrack it before making it immortal?
Uh oh!
There was an error while loading. Please reload this page.