From 8a09656793bf05a3b57d731d300778f2815ced8d Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 4 Jun 2024 11:39:07 +0200 Subject: [PATCH] gh-111499: Fix PYTHONMALLOCSTATS at Python exit (#120021) Call _PyObject_DebugMallocStats() earlier in Py_FinalizeEx(), before the interpreter is deleted. (cherry picked from commit 5a1205b641df133932ed4c65b9a4ff5724e89963) --- Python/pylifecycle.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index a0130fde15d574..2c36527a8754d1 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1969,6 +1969,13 @@ Py_FinalizeEx(void) // XXX Ensure finalizer errors are handled properly. finalize_interp_clear(tstate); + +#ifdef WITH_PYMALLOC + if (malloc_stats) { + _PyObject_DebugMallocStats(stderr); + } +#endif + finalize_interp_delete(tstate->interp); #ifdef Py_REF_DEBUG @@ -1994,11 +2001,6 @@ Py_FinalizeEx(void) fclose(dump_refs_fp); } #endif /* Py_TRACE_REFS */ -#ifdef WITH_PYMALLOC - if (malloc_stats) { - _PyObject_DebugMallocStats(stderr); - } -#endif call_ll_exitfuncs(runtime);