From 320a3a0529c7154918321c02e85d57674fb9bfce Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 23 Jun 2026 16:14:19 +0800 Subject: [PATCH] qa/lsan.supp: suppress CPython 3.12/3.13 interpreter leaks The python binaries on some CI images and dev boxes ship stripped, so the allocator frames in an interpreter-shutdown leak come through unsymbolised (/usr/bin/python3.13+0x...) and the function-name matches above cannot apply. leak:python3.10 already handled this for 3.10, and a stale comment claimed 3.12 does not leak. Add leak:python3.12 and leak:python3.13, mirroring the 3.10 entry, so the interpreter globals are suppressed whatever CPython the build uses. Signed-off-by: Kefu Chai --- qa/lsan.supp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/qa/lsan.supp b/qa/lsan.supp index e1a20fdccd8..df0897fc96e 100644 --- a/qa/lsan.supp +++ b/qa/lsan.supp @@ -29,15 +29,14 @@ leak:^PyUnicode_New leak:^PyMem_Malloc leak:^PyDict_Copy leak:^_PyObject_GC_NewVar -# Catch unsymbolised interpreter frames in both the standalone -# /usr/bin/python3.10 binary (used by the bin/ceph wrapper) and the -# /lib/.../libpython3.10.so.1.0 embedded by C++ unittests such as -# unittest_mgr_pyformatter / unittest_mgr_pyutil. Not all CPython -# 3.10 internal helpers are exported in .dynsym, so function-name -# matches above don't cover everything; this substring-matches the -# module path in the stack frame. Remove when CI moves to >= 3.12. +# Catch unsymbolised interpreter frames in the standalone python binary used by +# the bin/ceph wrapper and in the libpython embedded by C++ unittests such as +# unittest_mgr_pyformatter / unittest_mgr_pyutil. Not all CPython internal +# helpers are exported in .dynsym, so the function-name matches above don't +# cover everything; this substring-matches the module path in the stack frame. leak:python3.10 -# python3.12 doesn't leak anything +leak:python3.12 +leak:python3.13 # python3.13 leak:^PyModule_ExecDef -- 2.47.3