https://github.com/python/cpython/commit/2362cb6c6e81fcfec28f5dcce43d0d13aaf51825 commit: 2362cb6c6e81fcfec28f5dcce43d0d13aaf51825 branch: 3.13 author: Miss Islington (bot) <31488909+miss-isling...@users.noreply.github.com> committer: kumaraditya303 <kumaradi...@python.org> date: 2025-07-07T07:37:35Z summary:
[3.13] gh-109700: fix interpreter finalization while handling memory error (GH-136342) (#136353) gh-109700: fix interpreter finalization while handling memory error (GH-136342) (cherry picked from commit 0c3e3da19570424649c33c0c2c29dc12541935e7) Co-authored-by: Kumar Aditya <kumaradi...@python.org> files: M Python/pylifecycle.c diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index a8852a88f94a37..5e420bdf3377c8 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1717,8 +1717,10 @@ finalize_modules(PyThreadState *tstate) #endif // Stop watching __builtin__ modifications - PyDict_Unwatch(0, interp->builtins); - + if (PyDict_Unwatch(0, interp->builtins) < 0) { + // might happen if interp is cleared before watching the __builtin__ + PyErr_Clear(); + } PyObject *modules = _PyImport_GetModules(interp); if (modules == NULL) { // Already done @@ -2385,15 +2387,13 @@ new_interpreter(PyThreadState **tstate_p, error: *tstate_p = NULL; if (tstate != NULL) { - PyThreadState_Clear(tstate); - _PyThreadState_Detach(tstate); - PyThreadState_Delete(tstate); + Py_EndInterpreter(tstate); + } else { + PyInterpreterState_Delete(interp); } if (save_tstate != NULL) { _PyThreadState_Attach(save_tstate); } - PyInterpreterState_Delete(interp); - return status; } _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: arch...@mail-archive.com