Skip to content

memory leak in multi threading with fork #140493

@YuanchengJiang

Description

@YuanchengJiang

Bug report

Bug description:

import os, time, unittest
import threading
from test import support
import warnings
NUM_THREADS = 4
class ForkWait(unittest.TestCase):
    def f(self, id):
            try:
                time.sleep(SHORTSLEEP)
            except OSError:
                pass
    def wait_impl(self, cpid, *, exitcode):
        support.wait_process(cpid, exitcode=exitcode)
    def test_wait(self):
        for i in range(NUM_THREADS):
            thread = threading.Thread(target=self.f, args=(i,))
            thread.start()
        for _ in support.sleeping_retry(support.SHORT_TIMEOUT):
                break
        with warnings.catch_warnings(category=DeprecationWarning, action='ignore'):
            if (cpid := os.fork()) == 0:
                self.wait_impl(cpid, exitcode=0)
class G:
    """Sequence using __getitem__"""
    def __init__(self, seqn):
        return v
    unittest.main()

might need to try for a few times to reproduce, one possible leak is:

=================================================================
==2420028==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 168 byte(s) in 3 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf726c174 in _PyStack_UnpackDict ../Objects/call.c:988
    #2 0x56fcf726c9f5 in _PyObject_VectorcallDictTstate ../Objects/call.c:140
    #3 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #4 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #5 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #6 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #7 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #8 0x56fcf710e028 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3188
    #9 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #10 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #11 0x56fcf72694ed in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #12 0x56fcf72694ed in PyObject_CallOneArg ../Objects/call.c:395
    #13 0x56fcf7730276 in _PyErr_Display ../Python/pythonrun.c:1157
    #14 0x56fcf78f16dc in thread_excepthook_file ../Modules/_threadmodule.c:2294
    #15 0x56fcf78f16dc in thread_excepthook ../Modules/_threadmodule.c:2373
    #16 0x56fcf710f3b7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2455
    #17 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #18 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #19 0x56fcf7273065 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #20 0x56fcf7273065 in method_vectorcall ../Objects/classobject.c:73
    #21 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #22 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #23 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #24 0x56fcf78f5208 in thread_run ../Modules/_threadmodule.c:387
    #25 0x56fcf7770b4f in pythread_wrapper ../Python/thread_pthread.h:234
    #26 0x7023fa155a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #27 0x7023f9e98aa3 in start_thread nptl/pthread_create.c:447

Direct leak of 144 byte(s) in 3 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf78f6d7e in ThreadHandle_start ../Modules/_threadmodule.c:450
    #2 0x56fcf78f6d7e in do_start_new_thread ../Modules/_threadmodule.c:1920
    #3 0x56fcf78f7cfb in thread_PyThread_start_joinable_thread ../Modules/_threadmodule.c:2043
    #4 0x56fcf737861c in cfunction_call ../Objects/methodobject.c:564
    #5 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #6 0x56fcf710e028 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3188
    #7 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #8 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #9 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #10 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #11 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #12 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #13 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #14 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #15 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #16 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #17 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #18 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #19 0x56fcf74238e4 in call_method ../Objects/typeobject.c:3076
    #20 0x56fcf74238e4 in slot_tp_call ../Objects/typeobject.c:10599
    #21 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #22 0x56fcf710c85c in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #23 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #24 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #25 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #26 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #27 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #28 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #29 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #30 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #31 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #32 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #33 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #34 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #35 0x56fcf74238e4 in call_method ../Objects/typeobject.c:3076
    #36 0x56fcf74238e4 in slot_tp_call ../Objects/typeobject.c:10599
    #37 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #38 0x56fcf710bb82 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #39 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #40 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #41 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #42 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #43 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #44 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #45 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #46 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616

Direct leak of 128 byte(s) in 2 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf767dae7 in _PyObject_MallocWithType ../Include/internal/pycore_object_alloc.h:46
    #2 0x56fcf767dae7 in gc_alloc ../Python/gc.c:2340
    #3 0x56fcf767dae7 in _PyObject_GC_NewVar ../Python/gc.c:2382
    #4 0x56fcf73efe3b in tuple_alloc ../Objects/tupleobject.c:57
    #5 0x56fcf73f2188 in PyTuple_New ../Objects/tupleobject.c:81
    #6 0x56fcf73f2188 in PyTuple_New ../Objects/tupleobject.c:75
    #7 0x56fcf732e5c0 in dictiter_iternextitem ../Objects/dictobject.c:5709
    #8 0x56fcf72f8fd3 in list_extend_iter_lock_held ../Objects/listobject.c:1263
    #9 0x56fcf72f8fd3 in _list_extend ../Objects/listobject.c:1452
    #10 0x56fcf72fe67c in list_extend_impl ../Objects/listobject.c:1471
    #11 0x56fcf72fe67c in list_extend ../Objects/clinic/listobject.c.h:145
    #12 0x56fcf72fe67c in _PyList_Extend ../Objects/listobject.c:1480
    #13 0x56fcf721b900 in PySequence_List ../Objects/abstract.c:2086
    #14 0x56fcf7221f9a in method_output_as_list ../Objects/abstract.c:2446
    #15 0x56fcf7221f9a in PyMapping_Items ../Objects/abstract.c:2472
    #16 0x56fcf7901e76 in compute_abstract_methods ../Modules/_abc.c:380
    #17 0x56fcf7901e76 in _abc__abc_init ../Modules/_abc.c:502
    #18 0x56fcf710f3b7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2455
    #19 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #20 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #21 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #22 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #23 0x56fcf73f5fc0 in slot_tp_new ../Objects/typeobject.c:10853
    #24 0x56fcf7405e78 in type_call ../Objects/typeobject.c:2448
    #25 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #26 0x56fcf726e7c3 in _PyObject_VectorcallDictTstate ../Objects/call.c:130
    #27 0x56fcf726e7c3 in PyObject_VectorcallDict ../Objects/call.c:159
    #28 0x56fcf75d3b41 in builtin___build_class__ ../Python/bltinmodule.c:213
    #29 0x56fcf72691a7 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #30 0x56fcf72691a7 in PyObject_Vectorcall ../Objects/call.c:327
    #31 0x56fcf710bb82 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #32 0x56fcf75e73e6 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #33 0x56fcf75e73e6 in _PyEval_Vector ../Python/ceval.c:2001
    #34 0x56fcf75e73e6 in PyEval_EvalCode ../Python/ceval.c:884
    #35 0x56fcf75d17b8 in builtin_exec_impl ../Python/bltinmodule.c:1180
    #36 0x56fcf75d17b8 in builtin_exec ../Python/clinic/bltinmodule.c.h:571
    #37 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #38 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #39 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #40 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #41 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #42 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #43 0x56fcf7268322 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #44 0x56fcf7268322 in object_vacall ../Objects/call.c:819
    #45 0x56fcf726b971 in PyObject_CallMethodObjArgs ../Objects/call.c:886
    #46 0x56fcf76afb73 in import_find_and_load ../Python/import.c:3701
    #47 0x56fcf76afb73 in PyImport_ImportModuleLevelObject ../Python/import.c:3783
    #48 0x56fcf75ca3cc in builtin___import___impl ../Python/bltinmodule.c:285
    #49 0x56fcf75ca3cc in builtin___import__ ../Python/clinic/bltinmodule.c.h:110

Direct leak of 104 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf724b23f in _PyBytes_FromSize ../Objects/bytesobject.c:126
    #2 0x56fcf724b23f in PyBytes_FromStringAndSize ../Objects/bytesobject.c:156
    #3 0x56fcf74972a7 in unicode_encode_utf8 ../Objects/unicodeobject.c:5773
    #4 0x56fcf74bf36b in PyUnicode_EncodeFSDefault ../Objects/unicodeobject.c:3822
    #5 0x56fcf77e34e0 in path_converter ../Modules/posixmodule.c:1464
    #6 0x56fcf77ed58f in os_stat ../Modules/clinic/posixmodule.c.h:86
    #7 0x56fcf71307e6 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2361
    #8 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #9 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #10 0x56fcf726ca52 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #11 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #12 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #13 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #14 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #15 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #16 0x56fcf710e028 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3188
    #17 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #18 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #19 0x56fcf72694ed in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #20 0x56fcf72694ed in PyObject_CallOneArg ../Objects/call.c:395
    #21 0x56fcf7730276 in _PyErr_Display ../Python/pythonrun.c:1157
    #22 0x56fcf78f16dc in thread_excepthook_file ../Modules/_threadmodule.c:2294
    #23 0x56fcf78f16dc in thread_excepthook ../Modules/_threadmodule.c:2373
    #24 0x56fcf710f3b7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2455
    #25 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #26 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #27 0x56fcf7273065 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #28 0x56fcf7273065 in method_vectorcall ../Objects/classobject.c:73
    #29 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #30 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #31 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #32 0x56fcf78f5208 in thread_run ../Modules/_threadmodule.c:387
    #33 0x56fcf7770b4f in pythread_wrapper ../Python/thread_pthread.h:234
    #34 0x7023fa155a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #35 0x7023f9e98aa3 in start_thread nptl/pthread_create.c:447

Direct leak of 91 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf724b23f in _PyBytes_FromSize ../Objects/bytesobject.c:126
    #2 0x56fcf724b23f in PyBytes_FromStringAndSize ../Objects/bytesobject.c:156
    #3 0x56fcf74972a7 in unicode_encode_utf8 ../Objects/unicodeobject.c:5773
    #4 0x56fcf74bf36b in PyUnicode_EncodeFSDefault ../Objects/unicodeobject.c:3822
    #5 0x56fcf74bf75f in PyUnicode_FSConverter ../Objects/unicodeobject.c:4104
    #6 0x56fcf7861d95 in _io_FileIO___init___impl ../Modules/_io/fileio.c:310
    #7 0x56fcf7861d95 in _io_FileIO___init__ ../Modules/_io/clinic/fileio.c.h:137
    #8 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #9 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #10 0x56fcf7268d4f in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:167
    #11 0x56fcf7268d4f in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:154
    #12 0x56fcf7268d4f in _PyObject_CallFunctionVa ../Objects/call.c:552
    #13 0x56fcf7269c79 in PyObject_CallFunction ../Objects/call.c:574
    #14 0x56fcf78592b0 in _io_open_impl ../Modules/_io/_iomodule.c:331
    #15 0x56fcf78592b0 in _io_open ../Modules/_io/clinic/_iomodule.c.h:296
    #16 0x56fcf71307e6 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2361
    #17 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #18 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #19 0x56fcf726ca52 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #20 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #21 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #22 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #23 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #24 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #25 0x56fcf710e028 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3188
    #26 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #27 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #28 0x56fcf72694ed in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #29 0x56fcf72694ed in PyObject_CallOneArg ../Objects/call.c:395
    #30 0x56fcf7730276 in _PyErr_Display ../Python/pythonrun.c:1157
    #31 0x56fcf78f16dc in thread_excepthook_file ../Modules/_threadmodule.c:2294
    #32 0x56fcf78f16dc in thread_excepthook ../Modules/_threadmodule.c:2373
    #33 0x56fcf710f3b7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2455
    #34 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #35 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #36 0x56fcf7273065 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #37 0x56fcf7273065 in method_vectorcall ../Objects/classobject.c:73
    #38 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #39 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #40 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #41 0x56fcf78f5208 in thread_run ../Modules/_threadmodule.c:387
    #42 0x56fcf7770b4f in pythread_wrapper ../Python/thread_pthread.h:234
    #43 0x7023fa155a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234

Direct leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf767dae7 in _PyObject_MallocWithType ../Include/internal/pycore_object_alloc.h:46
    #2 0x56fcf767dae7 in gc_alloc ../Python/gc.c:2340
    #3 0x56fcf767dae7 in _PyObject_GC_NewVar ../Python/gc.c:2382
    #4 0x56fcf73efe3b in tuple_alloc ../Objects/tupleobject.c:57
    #5 0x56fcf73f2188 in PyTuple_New ../Objects/tupleobject.c:81
    #6 0x56fcf73f2188 in PyTuple_New ../Objects/tupleobject.c:75
    #7 0x56fcf76f8d20 in r_object ../Python/marshal.c:1372
    #8 0x56fcf76f9a93 in r_object ../Python/marshal.c:1554
    #9 0x56fcf76f8d94 in r_object ../Python/marshal.c:1378
    #10 0x56fcf76f9a93 in r_object ../Python/marshal.c:1554
    #11 0x56fcf76feb3f in read_object ../Python/marshal.c:1714
    #12 0x56fcf76fefb0 in marshal_loads_impl ../Python/marshal.c:2059
    #13 0x56fcf76fefb0 in marshal_loads ../Python/clinic/marshal.c.h:344
    #14 0x56fcf71307e6 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2361
    #15 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #16 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #17 0x56fcf7268322 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #18 0x56fcf7268322 in object_vacall ../Objects/call.c:819
    #19 0x56fcf726b971 in PyObject_CallMethodObjArgs ../Objects/call.c:886
    #20 0x56fcf76afb73 in import_find_and_load ../Python/import.c:3701
    #21 0x56fcf76afb73 in PyImport_ImportModuleLevelObject ../Python/import.c:3783
    #22 0x56fcf75e27f5 in _PyEval_ImportName ../Python/ceval.c:3017
    #23 0x56fcf71217ce in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:6219
    #24 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #25 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #26 0x56fcf726ca52 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #27 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #28 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #29 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #30 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #31 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #32 0x56fcf710dc7a in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #33 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #34 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #35 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #36 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #37 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #38 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #39 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #40 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf767dae7 in _PyObject_MallocWithType ../Include/internal/pycore_object_alloc.h:46
    #2 0x56fcf767dae7 in gc_alloc ../Python/gc.c:2340
    #3 0x56fcf767dae7 in _PyObject_GC_NewVar ../Python/gc.c:2382
    #4 0x56fcf73efe3b in tuple_alloc ../Objects/tupleobject.c:57
    #5 0x56fcf73f0fc4 in PyTuple_FromArray ../Objects/tupleobject.c:375
    #6 0x56fcf72f9cac in list_extend_dictitems ../Objects/listobject.c:1387
    #7 0x56fcf72f9cac in _list_extend ../Objects/listobject.c:1447
    #8 0x56fcf72fe67c in list_extend_impl ../Objects/listobject.c:1471
    #9 0x56fcf72fe67c in list_extend ../Objects/clinic/listobject.c.h:145
    #10 0x56fcf72fe67c in _PyList_Extend ../Objects/listobject.c:1480
    #11 0x56fcf721b900 in PySequence_List ../Objects/abstract.c:2086
    #12 0x56fcf75c9021 in builtin_sorted ../Python/bltinmodule.c:2652
    #13 0x56fcf72691a7 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #14 0x56fcf72691a7 in PyObject_Vectorcall ../Objects/call.c:327
    #15 0x56fcf710bb82 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #16 0x56fcf75e73e6 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #17 0x56fcf75e73e6 in _PyEval_Vector ../Python/ceval.c:2001
    #18 0x56fcf75e73e6 in PyEval_EvalCode ../Python/ceval.c:884
    #19 0x56fcf75d17b8 in builtin_exec_impl ../Python/bltinmodule.c:1180
    #20 0x56fcf75d17b8 in builtin_exec ../Python/clinic/bltinmodule.c.h:571
    #21 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #22 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #23 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #24 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #25 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #26 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #27 0x56fcf7268322 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #28 0x56fcf7268322 in object_vacall ../Objects/call.c:819
    #29 0x56fcf726b971 in PyObject_CallMethodObjArgs ../Objects/call.c:886
    #30 0x56fcf76afb73 in import_find_and_load ../Python/import.c:3701
    #31 0x56fcf76afb73 in PyImport_ImportModuleLevelObject ../Python/import.c:3783
    #32 0x56fcf75e27f5 in _PyEval_ImportName ../Python/ceval.c:3017
    #33 0x56fcf71217ce in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:6219
    #34 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #35 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #36 0x56fcf726ca52 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #37 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #38 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #39 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #40 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #41 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #42 0x56fcf710dc7a in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #43 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #44 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #45 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #46 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504

Direct leak of 56 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf726c174 in _PyStack_UnpackDict ../Objects/call.c:988
    #2 0x56fcf726c9f5 in _PyObject_VectorcallDictTstate ../Objects/call.c:140
    #3 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #4 0x56fcf7412da0 in call_method ../Objects/typeobject.c:3076
    #5 0x56fcf7412da0 in slot_tp_init ../Objects/typeobject.c:10828
    #6 0x56fcf7405f67 in type_call ../Objects/typeobject.c:2460
    #7 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #8 0x56fcf710dc7a in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #9 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #10 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #11 0x56fcf72694ed in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #12 0x56fcf72694ed in PyObject_CallOneArg ../Objects/call.c:395
    #13 0x56fcf7730276 in _PyErr_Display ../Python/pythonrun.c:1157
    #14 0x56fcf78f16dc in thread_excepthook_file ../Modules/_threadmodule.c:2294
    #15 0x56fcf78f16dc in thread_excepthook ../Modules/_threadmodule.c:2373
    #16 0x56fcf72691a7 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #17 0x56fcf72691a7 in PyObject_Vectorcall ../Objects/call.c:327
    #18 0x56fcf710bb82 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #19 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #20 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #21 0x56fcf7273065 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #22 0x56fcf7273065 in method_vectorcall ../Objects/classobject.c:73
    #23 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #24 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #25 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #26 0x56fcf78f5208 in thread_run ../Modules/_threadmodule.c:387
    #27 0x56fcf7770b4f in pythread_wrapper ../Python/thread_pthread.h:234
    #28 0x7023fa155a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #29 0x7023f9e98aa3 in start_thread nptl/pthread_create.c:447

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x7023fa1f49c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x56fcf78f6d7e in ThreadHandle_start ../Modules/_threadmodule.c:450
    #2 0x56fcf78f6d7e in do_start_new_thread ../Modules/_threadmodule.c:1920
    #3 0x56fcf78f7cfb in thread_PyThread_start_joinable_thread ../Modules/_threadmodule.c:2043
    #4 0x56fcf737861c in cfunction_call ../Objects/methodobject.c:564
    #5 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #6 0x56fcf710dc7a in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #7 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #8 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #9 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #10 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #11 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #12 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #13 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #14 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #15 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #16 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #17 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #18 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #19 0x56fcf74238e4 in call_method ../Objects/typeobject.c:3076
    #20 0x56fcf74238e4 in slot_tp_call ../Objects/typeobject.c:10599
    #21 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #22 0x56fcf710c85c in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #23 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #24 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #25 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #26 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #27 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #28 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #29 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #30 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #31 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #32 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #33 0x56fcf726c8e3 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #34 0x56fcf726cf9c in _PyObject_Call_Prepend ../Objects/call.c:504
    #35 0x56fcf74238e4 in call_method ../Objects/typeobject.c:3076
    #36 0x56fcf74238e4 in slot_tp_call ../Objects/typeobject.c:10599
    #37 0x56fcf726778d in _PyObject_MakeTpCall ../Objects/call.c:242
    #38 0x56fcf710bb82 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #39 0x56fcf75e7bb5 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #40 0x56fcf75e7bb5 in _PyEval_Vector ../Python/ceval.c:2001
    #41 0x56fcf7272dc0 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #42 0x56fcf7272dc0 in method_vectorcall ../Objects/classobject.c:95
    #43 0x56fcf726e2be in _PyVectorcall_Call ../Objects/call.c:273
    #44 0x56fcf726e2be in _PyObject_Call ../Objects/call.c:348
    #45 0x56fcf726e2be in PyObject_Call ../Objects/call.c:373
    #46 0x56fcf710ef67 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616

SUMMARY: AddressSanitizer: 883 byte(s) leaked in 14 allocation(s).

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    extension-modulesC modules in the Modules dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions