-
-
Notifications
You must be signed in to change notification settings - Fork 34.6k
_Py_Dealloc is an escaping call #124483
Copy link
Copy link
Open
Labels
3.13bugs and security fixesbugs and security fixes3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
Metadata
Metadata
Assignees
Labels
3.13bugs and security fixesbugs and security fixes3.14bugs and security fixesbugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
Crash report
We like to pretend that
_Py_Dealloc(and, by extension,Py_DECREF,Py_XDECREF,Py_CLEAR,PyStackRef_CLOSE,PyStackRef_CLEAR, etc...) isn't an escaping call in tier two. However, it's perfectly capable of invalidating the world. For example, the following code crashes when run under the JIT:Longer term, we're hoping that removing refcounting operations in tier two will help us out here. Fortunately, the
_SET_IPand_CHECK_VALIDITYinstructions necessary to fix this issue aren't expensive enough to show up on benchmarks when added back (for now).Linked PRs
_Py_Deallocas an escaping call in tier two #124615Py_DECREF, etc. as escaping for the JIT #128678