gh-137384: fix crash when accessing warnings state late in runtime shutdown (#138027)
This commit is contained in:
@@ -805,7 +805,6 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
|
||||
_Py_ClearExecutorDeletionList(interp);
|
||||
#endif
|
||||
_PyAST_Fini(interp);
|
||||
_PyWarnings_Fini(interp);
|
||||
_PyAtExit_Fini(interp);
|
||||
|
||||
// All Python types must be destroyed before the last GC collection. Python
|
||||
@@ -815,6 +814,10 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
|
||||
/* Last garbage collection on this interpreter */
|
||||
_PyGC_CollectNoFail(tstate);
|
||||
_PyGC_Fini(interp);
|
||||
|
||||
// Finalize warnings after last gc so that any finalizers can
|
||||
// access warnings state
|
||||
_PyWarnings_Fini(interp);
|
||||
struct _PyExecutorObject *cold = interp->cold_executor;
|
||||
if (cold != NULL) {
|
||||
interp->cold_executor = NULL;
|
||||
|
||||
Reference in New Issue
Block a user