-
Notifications
You must be signed in to change notification settings - Fork 7
Python 3.12 support replace imp with importlib #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hello @Qubitium. Thanks for bringing this up. Please find the merge-request that adds py3.12 support at https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/23. Does it work for you? Kirill |
Compilation work and I believe there are no issues. Thank you! But unfortunately we are unable to test more as we found even more issues with 3.12 and pkgs such as torch 2.2. So we are sticking with 3.11 for now. |
navytux
added a commit
that referenced
this issue
Feb 17, 2024
@Qubitium notes (#1): Python 3.12 no longer support the imp module (fully deprecated) with note to use importlib as replacement. Please support python 3.12 by migrating from imp code to importlib. Thanks. and indeed, even trying to build pygolang fails on py3.12: (py312.venv) kirr@deca:~/src/tools/go/pygolang-master$ python setup.py build_ext -i Traceback (most recent call last): File "/home/kirr/src/tools/go/pygolang-master/setup.py", line 40, in <module> exec(readfile('trun'), trun) File "<string>", line 41, in <module> ModuleNotFoundError: No module named 'imp' -> Rework the code to use importlib instead, but keep using imp on py2 where there is practically no importlib functionality. /reported-by @Qubitium (github) /reviewed-by @jerome /reviewed-on https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/23
navytux
added a commit
that referenced
this issue
Apr 19, 2024
Background: in 2019 in 4dc1a7f0 (tox += ThreadSanitizer, AddressSanitizer, Python debug builds) I've added ThreadSanitizer and AddressSanitizer to our test build matrix. That was done in order to help catching concurrency issues while doing quality assurance and it indeed worked well(*). However AddressSanitizer was added with disabled memory leak detection, because at that time there were tons of various allocations done by Python itself, that were not released on Python shutdown. So leak reporting pass was disabled to avoid huge non-pygolang related printouts. 5 years later Pygolang is used by various projects, including in XLTE, where, in particular, it is used to organize 100Hz polling of Amarisoft eNodeB service to retrieve information about flows on Data Radio Bearers: https://lab.nexedi.com/kirr/xlte/-/commit/2a016d48 https://lab.nexedi.com/kirr/xlte/-/blob/8e606c64/amari/drb.py And everything works relatively well except that recently Joanne approached me with reports that xamari program, that does the polling, is leaking memory. During investigation I could manually find at least two causes of the leakage, and, while working on a fix, discovered third type of leak. Since all those leaks happen inside Pygolang and at, or around, C level - most of the time not visible through python objects and so not discoverable via e.g objgraph, it raises the need to have robust quality assurance procedures built into maintenance process to cover not only concurrency and memory safety issues, but also to reliably detect low-level memory leaks. So before we start fixing any of the leakages, let's activate LeakSanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer) to be present during tox runs, so that whenever we run something via ASAN in the end tested process is checked for whether anything was leaked and if yes, which codepath was used to allocate leaked memory. Initially I though that it would be hard to have distilled reports, the ones without much of added noise due to leaks on python side, but it turns out that starting from py3.11 cpython codebase was improved to release on interpreter shutdown most of what was allocated, and so with modest suppression rules we can distill LeakSanitizer output to come with the issues that are relevant to pygolang itself. That builds the foundation for making sure there are no memory leaks done by pygolang in the follow-up patches. The next patch will fix chan leakage in pychan_from_raw, and there will be more fixes to come later. For now ASAN builds become broken, but that is good that we can see the issues. Please see the appendix for current LeakSanitizer output. /cc ORS team (@jhuge, @lu.xu, @tomo, @xavier_thompson, @Daetalus) /reviewed-by @jerome /reviewed-on https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/24 (*) at that time, besides discovering longstanding race-condition in Python itself (https://bugs.python.org/issue38106, https://github.com/python/cpython/pull/16047), several concurrency issues were found in pygolang codebase as well: https://lab.nexedi.com/nexedi/pygolang/commit/dcf4ebd1 https://lab.nexedi.com/nexedi/pygolang/commit/65c43848 https://lab.nexedi.com/nexedi/pygolang/commit/5aa1e899 https://lab.nexedi.com/nexedi/pygolang/commit/fd2a6fab -------- Appendix. List of errors currently emitted by LeakSanitizer when running Pygolang tests ``` ==2061372==ERROR: LeakSanitizer: detected memory leaks Direct leak of 241136 byte(s) in 28 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a649e3 in _PyObject_NewVar Objects/object.c:332 #4 0x555687a0c16b in _PyCode_New Objects/codeobject.c:582 #5 0x555687b12f84 in makecode Python/assemble.c:574 #6 0x555687b12f84 in _PyAssemble_MakeCodeObject Python/assemble.c:598 #7 0x555687b2bdbe in optimize_and_assemble_code_unit Python/compile.c:7707 #8 0x555687b2bdbe in optimize_and_assemble Python/compile.c:7734 #9 0x555687b3b1a8 in compiler_function_body Python/compile.c:2247 #10 0x555687b3b1a8 in compiler_function Python/compile.c:2356 #11 0x555687b3b787 in compiler_body Python/compile.c:1703 #12 0x555687b3b917 in compiler_codegen Python/compile.c:1719 #13 0x555687b3c5c3 in compiler_mod Python/compile.c:1747 #14 0x555687b3c5c3 in _PyAST_Compile Python/compile.c:584 #15 0x555687b1f9a0 in builtin_compile_impl Python/bltinmodule.c:820 #16 0x555687b1f9a0 in builtin_compile Python/clinic/bltinmodule.c.h:383 #17 0x5556879a5949 in _PyEval_EvalFrameDefault Python/bytecodes.c:2966 #18 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #19 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #20 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #21 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #22 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #23 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #24 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #25 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #26 0x555687a37fd0 in list_extend Objects/listobject.c:944 #27 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #28 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #29 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #30 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #31 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #32 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #33 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #34 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #35 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #36 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #37 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #38 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #39 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #40 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #41 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #42 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #43 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #44 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #45 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #46 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #47 0x555687ba84fa in pymain_run_module Modules/main.c:300 #48 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #49 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #50 0x555687ba96f9 in pymain_main Modules/main.c:739 #51 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #52 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #53 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #54 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 235267 byte(s) in 25 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:102 #4 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:83 #5 0x5556879faf23 in PyBytes_FromStringAndSize Objects/bytesobject.c:134 #6 0x555687a0e210 in _PyCode_GetCode Objects/codeobject.c:1535 #7 0x555687b70339 in w_complex_object Python/marshal.c:554 #8 0x555687b70339 in w_object Python/marshal.c:375 #9 0x555687b6fde4 in w_complex_object Python/marshal.c:479 #10 0x555687b6fde4 in w_object Python/marshal.c:375 #11 0x555687b703b5 in w_complex_object Python/marshal.c:566 #12 0x555687b703b5 in w_object Python/marshal.c:375 #13 0x555687b6f470 in PyMarshal_WriteObjectToString Python/marshal.c:1669 #14 0x5556879a57c9 in _PyEval_EvalFrameDefault Python/bytecodes.c:2929 #15 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #16 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #17 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #18 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #19 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #20 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #21 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #22 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #23 0x555687a37fd0 in list_extend Objects/listobject.c:944 #24 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #25 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #26 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #27 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #28 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #29 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #30 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #31 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #32 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #33 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #34 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #35 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #36 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #37 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #38 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #39 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #40 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #41 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #42 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #43 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #44 0x555687ba84fa in pymain_run_module Modules/main.c:300 #45 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #46 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #47 0x555687ba96f9 in pymain_main Modules/main.c:739 #48 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #49 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #50 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #51 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 22656 byte(s) in 9 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a649e3 in _PyObject_NewVar Objects/object.c:332 #4 0x555687a0c16b in _PyCode_New Objects/codeobject.c:582 #5 0x555687b12f84 in makecode Python/assemble.c:574 #6 0x555687b12f84 in _PyAssemble_MakeCodeObject Python/assemble.c:598 #7 0x555687b2bdbe in optimize_and_assemble_code_unit Python/compile.c:7707 #8 0x555687b2bdbe in optimize_and_assemble Python/compile.c:7734 #9 0x555687b3b1a8 in compiler_function_body Python/compile.c:2247 #10 0x555687b3b1a8 in compiler_function Python/compile.c:2356 #11 0x555687b3b787 in compiler_body Python/compile.c:1703 #12 0x555687b3b917 in compiler_codegen Python/compile.c:1719 #13 0x555687b3c5c3 in compiler_mod Python/compile.c:1747 #14 0x555687b3c5c3 in _PyAST_Compile Python/compile.c:584 #15 0x555687b1f9a0 in builtin_compile_impl Python/bltinmodule.c:820 #16 0x555687b1f9a0 in builtin_compile Python/clinic/bltinmodule.c.h:383 #17 0x5556879a5949 in _PyEval_EvalFrameDefault Python/bytecodes.c:2966 #18 0x555687a061f5 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #19 0x555687a061f5 in PyObject_CallOneArg Objects/call.c:401 #20 0x555687a675f1 in _PyObject_GenericGetAttrWithDict Objects/object.c:1430 #21 0x555687a6728d in PyObject_GetAttr Objects/object.c:1044 #22 0x55568799fd39 in _PyEval_EvalFrameDefault Python/bytecodes.c:1794 #23 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #24 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #25 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #26 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #27 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #28 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #29 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #30 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #31 0x555687a37fa5 in list_extend Objects/listobject.c:944 #32 0x555687a14520 in method_vectorcall_O Objects/descrobject.c:482 #33 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #34 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #35 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #36 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #37 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #38 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #39 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #40 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #41 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #42 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #43 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #44 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #45 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #46 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #47 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #48 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #49 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #50 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #51 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #52 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #53 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #54 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #55 0x555687ba84fa in pymain_run_module Modules/main.c:300 #56 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #57 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #58 0x555687ba96f9 in pymain_main Modules/main.c:739 #59 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #60 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #61 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #62 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 21199 byte(s) in 9 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:102 #4 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:83 #5 0x5556879faf23 in PyBytes_FromStringAndSize Objects/bytesobject.c:134 #6 0x555687a0e210 in _PyCode_GetCode Objects/codeobject.c:1535 #7 0x555687b70339 in w_complex_object Python/marshal.c:554 #8 0x555687b70339 in w_object Python/marshal.c:375 #9 0x555687b6fde4 in w_complex_object Python/marshal.c:479 #10 0x555687b6fde4 in w_object Python/marshal.c:375 #11 0x555687b703b5 in w_complex_object Python/marshal.c:566 #12 0x555687b703b5 in w_object Python/marshal.c:375 #13 0x555687b6f470 in PyMarshal_WriteObjectToString Python/marshal.c:1669 #14 0x5556879a57c9 in _PyEval_EvalFrameDefault Python/bytecodes.c:2929 #15 0x555687a061f5 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #16 0x555687a061f5 in PyObject_CallOneArg Objects/call.c:401 #17 0x555687a675f1 in _PyObject_GenericGetAttrWithDict Objects/object.c:1430 #18 0x555687a6728d in PyObject_GetAttr Objects/object.c:1044 #19 0x55568799fd39 in _PyEval_EvalFrameDefault Python/bytecodes.c:1794 #20 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #21 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #22 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #23 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #24 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #25 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #26 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #27 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #28 0x555687a37fa5 in list_extend Objects/listobject.c:944 #29 0x555687a14520 in method_vectorcall_O Objects/descrobject.c:482 #30 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #31 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #32 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #33 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #34 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #35 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #36 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #37 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #38 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #39 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #40 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #41 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #42 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #43 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #44 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #45 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #46 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #47 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #48 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #49 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #50 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #51 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #52 0x555687ba84fa in pymain_run_module Modules/main.c:300 #53 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #54 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #55 0x555687ba96f9 in pymain_main Modules/main.c:739 #56 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #57 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #58 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #59 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 8192 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a70058 in set_table_resize Objects/setobject.c:274 #4 0x555687a708c1 in set_add_key Objects/setobject.c:354 #5 0x555687a708c1 in set_update_internal Objects/setobject.c:913 #6 0x555687a708c1 in set_update_internal Objects/setobject.c:878 #7 0x555687a70c4e in set_update Objects/setobject.c:933 #8 0x555687a13046 in method_vectorcall_VARARGS Objects/descrobject.c:331 #9 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #10 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #11 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #12 0x555687a23bc4 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #13 0x555687a23bc4 in gen_send_ex2 Objects/genobject.c:230 #14 0x555687a23bc4 in gen_send_ex Objects/genobject.c:274 #15 0x555687a23bc4 in gen_send Objects/genobject.c:297 #16 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #17 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #18 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #19 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #20 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #21 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #22 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #23 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #24 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #25 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #26 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #27 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #28 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #29 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #30 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #31 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #32 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #33 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #34 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #35 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #36 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #37 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #38 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #39 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #40 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #41 0x555687ba84fa in pymain_run_module Modules/main.c:300 #42 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #43 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #44 0x555687ba96f9 in pymain_main Modules/main.c:739 #45 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #46 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #47 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #48 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 4592 byte(s) in 5 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a7314 in _PyEval_EvalFrameDefault Python/bytecodes.c:1023 #8 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #9 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #10 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #11 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #12 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #13 0x5556879a5949 in _PyEval_EvalFrameDefault Python/bytecodes.c:2966 #14 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #15 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #16 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #17 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #18 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #19 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #20 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #21 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #22 0x555687a37fd0 in list_extend Objects/listobject.c:944 #23 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #24 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #25 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #26 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #27 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #28 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #29 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #30 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #31 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #32 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #33 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #34 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #35 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #36 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #37 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #38 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #39 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #40 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #41 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #42 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #43 0x555687ba84fa in pymain_run_module Modules/main.c:300 #44 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #45 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #46 0x555687ba96f9 in pymain_main Modules/main.c:739 #47 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #48 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #49 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #50 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 4032 byte(s) in 2 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a4de2 in _PyEval_EvalFrameDefault Python/bytecodes.c:579 #8 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #9 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #10 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #11 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #12 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #13 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #14 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #15 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #16 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #17 0x555687ba84fa in pymain_run_module Modules/main.c:300 #18 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #19 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #20 0x555687ba96f9 in pymain_main Modules/main.c:739 #21 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #22 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #23 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #24 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 3264 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a4de2 in _PyEval_EvalFrameDefault Python/bytecodes.c:579 #8 0x555687a09b17 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #9 0x555687a09b17 in method_vectorcall Objects/classobject.c:61 #10 0x555687a07f9b in PyObject_Call (/home/kirr/local/py3.12/bin/python3.12+0x169f9b) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) #11 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #12 0x555687a09a90 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #13 0x555687a09a90 in method_vectorcall Objects/classobject.c:91 #14 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #15 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #16 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #17 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #18 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #19 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #20 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #21 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #22 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #23 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #24 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #25 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #26 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #27 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #28 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #29 0x555687ba84fa in pymain_run_module Modules/main.c:300 #30 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #31 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #32 0x555687ba96f9 in pymain_main Modules/main.c:739 #33 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #34 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #35 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #36 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 3168 byte(s) in 2 object(s) allocated from: #0 0x7f27922f2ad8 in realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:85 #1 0x555687a37ebc in list_resize Objects/listobject.c:82 #2 0x555687a37ebc in list_extend Objects/listobject.c:892 #3 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #4 0x555687a09a90 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #5 0x555687a09a90 in method_vectorcall Objects/classobject.c:91 #6 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #7 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #8 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #9 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #10 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #11 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #12 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #13 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #14 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #15 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #16 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #17 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #18 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #19 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #20 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #21 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #22 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #23 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #24 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #25 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #26 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #27 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #28 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #29 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #30 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #31 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #32 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #33 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #34 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #35 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #36 0x555687ba84fa in pymain_run_module Modules/main.c:300 #37 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #38 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #39 0x555687ba96f9 in pymain_main Modules/main.c:739 #40 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #41 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #42 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #43 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 3024 byte(s) in 2 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a649e3 in _PyObject_NewVar Objects/object.c:332 #4 0x555687a0c16b in _PyCode_New Objects/codeobject.c:582 #5 0x555687b12f84 in makecode Python/assemble.c:574 #6 0x555687b12f84 in _PyAssemble_MakeCodeObject Python/assemble.c:598 #7 0x555687b2bdbe in optimize_and_assemble_code_unit Python/compile.c:7707 #8 0x555687b2bdbe in optimize_and_assemble Python/compile.c:7734 #9 0x555687b3b1a8 in compiler_function_body Python/compile.c:2247 #10 0x555687b3b1a8 in compiler_function Python/compile.c:2356 #11 0x555687b3b787 in compiler_body Python/compile.c:1703 #12 0x555687b3b917 in compiler_codegen Python/compile.c:1719 #13 0x555687b3c5c3 in compiler_mod Python/compile.c:1747 #14 0x555687b3c5c3 in _PyAST_Compile Python/compile.c:584 #15 0x555687b1f9a0 in builtin_compile_impl Python/bltinmodule.c:820 #16 0x555687b1f9a0 in builtin_compile Python/clinic/bltinmodule.c.h:383 #17 0x5556879a5949 in _PyEval_EvalFrameDefault Python/bytecodes.c:2966 #18 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #19 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #20 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #21 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #22 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #23 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #24 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #25 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #26 0x555687a37fa5 in list_extend Objects/listobject.c:944 #27 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #28 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #29 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #30 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #31 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #32 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #33 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #34 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #35 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #36 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #37 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #38 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #39 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #40 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #41 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #42 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #43 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #44 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #45 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #46 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #47 0x555687ba84fa in pymain_run_module Modules/main.c:300 #48 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #49 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #50 0x555687ba96f9 in pymain_main Modules/main.c:739 #51 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #52 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #53 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #54 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 2702 byte(s) in 2 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:102 #4 0x5556879faf23 in _PyBytes_FromSize Objects/bytesobject.c:83 #5 0x5556879faf23 in PyBytes_FromStringAndSize Objects/bytesobject.c:134 #6 0x555687a0e210 in _PyCode_GetCode Objects/codeobject.c:1535 #7 0x555687b70339 in w_complex_object Python/marshal.c:554 #8 0x555687b70339 in w_object Python/marshal.c:375 #9 0x555687b6fde4 in w_complex_object Python/marshal.c:479 #10 0x555687b6fde4 in w_object Python/marshal.c:375 #11 0x555687b703b5 in w_complex_object Python/marshal.c:566 #12 0x555687b703b5 in w_object Python/marshal.c:375 #13 0x555687b6f470 in PyMarshal_WriteObjectToString Python/marshal.c:1669 #14 0x5556879a57c9 in _PyEval_EvalFrameDefault Python/bytecodes.c:2929 #15 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #16 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #17 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #18 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #19 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #20 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #21 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #22 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #23 0x555687a37fa5 in list_extend Objects/listobject.c:944 #24 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #25 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #26 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #27 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #28 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #29 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #30 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #31 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #32 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #33 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #34 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #35 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #36 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #37 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #38 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #39 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #40 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #41 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #42 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #43 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #44 0x555687ba84fa in pymain_run_module Modules/main.c:300 #45 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #46 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #47 0x555687ba96f9 in pymain_main Modules/main.c:739 #48 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #49 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #50 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #51 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 2200 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x555687c0ff1e in bounded_lru_cache_wrapper Modules/_functoolsmodule.c:1067 #8 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #9 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #10 0x555687a061f5 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #11 0x555687a061f5 in PyObject_CallOneArg Objects/call.c:401 #12 0x555687a675f1 in _PyObject_GenericGetAttrWithDict Objects/object.c:1430 #13 0x555687a6728d in PyObject_GetAttr Objects/object.c:1044 #14 0x55568799fd39 in _PyEval_EvalFrameDefault Python/bytecodes.c:1794 #15 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #16 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #17 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #18 0x555687a37fa5 in list_extend Objects/listobject.c:944 #19 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #20 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #21 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #22 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #23 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #24 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #25 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #26 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #27 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #28 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #29 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #30 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #31 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #32 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #33 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #34 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #35 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #36 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #37 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #38 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #39 0x555687ba84fa in pymain_run_module Modules/main.c:300 #40 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #41 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #42 0x555687ba96f9 in pymain_main Modules/main.c:739 #43 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #44 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #45 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #46 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 2048 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a70058 in set_table_resize Objects/setobject.c:274 #4 0x555687a70714 in set_add_key Objects/setobject.c:354 #5 0x555687a70714 in set_add Objects/setobject.c:1840 #6 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #7 0x555687a09a90 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #8 0x555687a09a90 in method_vectorcall Objects/classobject.c:91 #9 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #10 0x555687a08293 in _PyObject_FastCallDictTstate Objects/call.c:133 #11 0x555687a08293 in _PyObject_Call_Prepend Objects/call.c:508 #12 0x555687a911ac in slot_tp_init Objects/typeobject.c:9014 #13 0x555687a7e8d6 in type_call Objects/typeobject.c:1673 #14 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #15 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #16 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #17 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #18 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #19 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #20 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #21 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #22 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #23 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #24 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #25 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #26 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #27 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #28 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #29 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #30 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #31 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #32 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #33 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #34 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #35 0x555687ba84fa in pymain_run_module Modules/main.c:300 #36 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #37 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #38 0x555687ba96f9 in pymain_main Modules/main.c:739 #39 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #40 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #41 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #42 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1520 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x555687a65e81 in _PyObject_GenericSetAttrWithDict Objects/object.c:1562 #8 0x555687a65e81 in PyObject_GenericSetAttr Objects/object.c:1619 #9 0x555687a67094 in PyObject_SetAttr Objects/object.c:1175 #10 0x555687b1bbe6 in builtin_setattr_impl Python/bltinmodule.c:1547 #11 0x555687b1bbe6 in builtin_setattr Python/clinic/bltinmodule.c.h:765 #12 0x5556879a57c9 in _PyEval_EvalFrameDefault Python/bytecodes.c:2929 #13 0x555687a08293 in _PyObject_FastCallDictTstate Objects/call.c:133 #14 0x555687a08293 in _PyObject_Call_Prepend Objects/call.c:508 #15 0x555687a911ac in slot_tp_init Objects/typeobject.c:9014 #16 0x555687a7e8d6 in type_call Objects/typeobject.c:1673 #17 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #18 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #19 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #20 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #21 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #22 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #23 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #24 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #25 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #26 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #27 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #28 0x555687ba84fa in pymain_run_module Modules/main.c:300 #29 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #30 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #31 0x555687ba96f9 in pymain_main Modules/main.c:739 #32 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #33 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #34 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #35 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1520 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a4de2 in _PyEval_EvalFrameDefault Python/bytecodes.c:579 #8 0x555687a09a90 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #9 0x555687a09a90 in method_vectorcall Objects/classobject.c:91 #10 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #11 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #12 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #13 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #14 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #15 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #16 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #17 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #18 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #19 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #20 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #21 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #22 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #23 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #24 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #25 0x555687ba84fa in pymain_run_module Modules/main.c:300 #26 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #27 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #28 0x555687ba96f9 in pymain_main Modules/main.c:739 #29 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #30 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #31 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #32 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1520 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x555687a65e81 in _PyObject_GenericSetAttrWithDict Objects/object.c:1562 #8 0x555687a65e81 in PyObject_GenericSetAttr Objects/object.c:1619 #9 0x555687a67094 in PyObject_SetAttr Objects/object.c:1175 #10 0x555687b1bbe6 in builtin_setattr_impl Python/bltinmodule.c:1547 #11 0x555687b1bbe6 in builtin_setattr Python/clinic/bltinmodule.c.h:765 #12 0x5556879a57c9 in _PyEval_EvalFrameDefault Python/bytecodes.c:2929 #13 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #14 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #15 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #16 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #17 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #18 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #19 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #20 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #21 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #22 0x555687ba84fa in pymain_run_module Modules/main.c:300 #23 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #24 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #25 0x555687ba96f9 in pymain_main Modules/main.c:739 #26 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #27 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #28 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #29 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1520 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4bc0b in clone_combined_dict_keys Objects/dictobject.c:799 #4 0x555687a53e8f in dict_merge Objects/dictobject.c:2843 #5 0x555687a56f71 in dict_update_common Objects/dictobject.c:2688 #6 0x555687a56f71 in dict_update Objects/dictobject.c:2706 #7 0x555687a13bdb in method_vectorcall_VARARGS_KEYWORDS Objects/descrobject.c:365 #8 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #9 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #10 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #11 0x555687a09a90 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #12 0x555687a09a90 in method_vectorcall Objects/classobject.c:91 #13 0x55568799e2ed in _PyEval_EvalFrameDefault Python/bytecodes.c:3254 #14 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #15 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #16 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #17 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #18 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #19 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #20 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #21 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #22 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #23 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #24 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #25 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #26 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #27 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #28 0x555687ba84fa in pymain_run_module Modules/main.c:300 #29 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #30 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #31 0x555687ba96f9 in pymain_main Modules/main.c:739 #32 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #33 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #34 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #35 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1520 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a7314 in _PyEval_EvalFrameDefault Python/bytecodes.c:1023 #8 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #9 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #10 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #11 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #12 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #13 0x5556879a5949 in _PyEval_EvalFrameDefault Python/bytecodes.c:2966 #14 0x555687a061f5 in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #15 0x555687a061f5 in PyObject_CallOneArg Objects/call.c:401 #16 0x555687a675f1 in _PyObject_GenericGetAttrWithDict Objects/object.c:1430 #17 0x555687a6728d in PyObject_GetAttr Objects/object.c:1044 #18 0x55568799fd39 in _PyEval_EvalFrameDefault Python/bytecodes.c:1794 #19 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #20 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #21 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #22 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #23 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #24 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #25 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #26 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #27 0x555687a37fa5 in list_extend Objects/listobject.c:944 #28 0x555687a14520 in method_vectorcall_O Objects/descrobject.c:482 #29 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #30 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #31 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #32 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #33 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #34 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #35 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #36 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #37 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #38 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #39 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #40 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #41 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #42 0x555687b22926 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #43 0x555687b22926 in _PyEval_Vector Python/ceval.c:1683 #44 0x555687b22926 in PyEval_EvalCode Python/ceval.c:578 #45 0x555687b1ebdf in builtin_exec_impl Python/bltinmodule.c:1096 #46 0x555687b1ebdf in builtin_exec Python/clinic/bltinmodule.c.h:586 #47 0x555687a613ae in cfunction_vectorcall_FASTCALL_KEYWORDS Objects/methodobject.c:438 #48 0x555687a05fff in _PyObject_VectorcallTstate Include/internal/pycore_call.h:92 #49 0x555687a05fff in PyObject_Vectorcall Objects/call.c:325 #50 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #51 0x555687ba84fa in pymain_run_module Modules/main.c:300 #52 0x555687ba8cd9 in pymain_run_python Modules/main.c:623 #53 0x555687ba96f9 in Py_RunMain Modules/main.c:709 #54 0x555687ba96f9 in pymain_main Modules/main.c:739 #55 0x555687ba96f9 in Py_BytesMain Modules/main.c:763 #56 0x7f2791c46249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #57 0x7f2791c46304 in __libc_start_main_impl ../csu/libc-start.c:360 #58 0x5556879aa030 in _start (/home/kirr/local/py3.12/bin/python3.12+0x10c030) (BuildId: 90994913e85aac5c35e9f04b53a6eeee5a04786d) Direct leak of 1104 byte(s) in 1 object(s) allocated from: #0 0x7f27922f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555687a6a9d2 in PyMem_RawMalloc Objects/obmalloc.c:662 #2 0x555687a6a9d2 in _PyObject_Malloc Objects/obmalloc.c:1569 #3 0x555687a4d4e8 in new_keys_object Objects/dictobject.c:641 #4 0x555687a4d4e8 in dictresize Objects/dictobject.c:1449 #5 0x555687a53277 in insertion_resize Objects/dictobject.c:1194 #6 0x555687a53277 in insertdict Objects/dictobject.c:1261 #7 0x5556879a4de2 in _PyEval_EvalFrameDefault Python/bytecodes.c:579 #8 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #9 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #10 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #11 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #12 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #13 0x555687a22c14 in _PyEval_EvalFrame Include/internal/pycore_ceval.h:89 #14 0x555687a22c14 in gen_send_ex2 Objects/genobject.c:230 #15 0x555687a22c14 in gen_iternext Objects/genobject.c:604 #16 0x555687a37fa5 in list_extend Objects/listobject.c:944 #17 0x5556879a3a9a in _PyEval_EvalFrameDefault Python/bytecodes.c:3085 #18 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #19 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #20 0x555687a8ba6c in slot_tp_call Objects/typeobject.c:8770 #21 0x555687a05733 in _PyObject_MakeTpCall Objects/call.c:240 #22 0x5556879a3252 in _PyEval_EvalFrameDefault Python/bytecodes.c:2706 #23 0x555687a0833e in _PyObject_FastCallDictTstate Objects/call.c:144 #24 0x555687a0833e in _PyObject_Call_Prepend Objects/call.c:508 #25 0x555687a8ba6c in slot_tp_call Objec…
navytux
added a commit
that referenced
this issue
Apr 19, 2024
…ppers The code of pychan_from_raw, that pychan.from_chan_X calls, was creating pychan object and then setting pychan._ch to the specified raw channel. But it missed that pychan.__new__ was creating full Python object, with everything initialized - in particular with pychan._ch initialized to another channel created by pychan.__cinit__ constructor, and so pointer to that another channel was removed without decrefing it first. That caused the leak of that second channel observable as the following LeakSanitizer report when run on e.g. added test: Direct leak of 72 byte(s) in 1 object(s) allocated from: #0 0x7f70902f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x7f708bfab612 in zalloc golang/runtime/libgolang.cpp:1307 #2 0x7f708bfa56c0 in _makechan golang/runtime/libgolang.cpp:469 #3 0x7f708be78da2 in __pyx_f_6golang_7_golang__makechan_pyexc golang/_golang.cpp:8844 #4 0x7f708be703ad in __pyx_pf_6golang_7_golang_6pychan___cinit__ golang/_golang.cpp:4870 #5 0x7f708be7019d in __pyx_pw_6golang_7_golang_6pychan_1__cinit__ golang/_golang.cpp:4833 #6 0x7f708beaa0f8 in __pyx_tp_new_6golang_7_golang_pychan golang/_golang.cpp:29896 #7 0x7f708be743af in __pyx_f_6golang_7_golang_pychan_from_raw golang/_golang.cpp:7240 #8 0x7f708be73e76 in __pyx_f_6golang_7_golang_6pychan_from_chan_int golang/_golang.cpp:6927 #9 0x7f7088a990a5 in __pyx_pf_6golang_12_golang_test_62test_pychan_from_raw_noleak golang/_golang_test.cpp:7479 #10 0x7f7088a98ef2 in __pyx_pw_6golang_12_golang_test_63test_pychan_from_raw_noleak golang/_golang_test.cpp:7445 -> Fix it by adjusting raw chan -> py chan conversion routine to first create uninitialized py object - with no underlying channel created at all. Adjust pynil to use pychan_from_raw instead of duplicating its code, so that we keep the logic and the fix only in one place. The context where this problem was originally discovered is xamari from XLTE where on every request new timer is created to handle request timeout, and that timer, being Python-level object, wraps underlying C-level timer with creating pychan wrapper of that: https://lab.nexedi.com/kirr/xlte/-/blob/8e606c64/amari/__init__.py#L182-193 https://lab.nexedi.com/nexedi/pygolang/-/blob/6dd420da/golang/_time.pyx#L96 https://lab.nexedi.com/nexedi/pygolang/-/blob/6dd420da/golang/_time.pyx#L104 As the result on every request memory was leaked on and on. Besides new test going ok even under LeakSanitizer, the following test program confirms the fix: ```py from golang import context def main(): bg = context.background() key = object() while 1: ctx = context.with_value(bg, key, 1) main() ``` Before the patch it leaks ~ 1GB of RAM every second on my computer due to similar raw chan -> py chan wrapping in py context.with_value https://lab.nexedi.com/nexedi/pygolang/-/blob/6dd420da/golang/_context.pyx#L169-180 https://lab.nexedi.com/nexedi/pygolang/-/blob/6dd420da/golang/_context.pyx#L38-43 After the fix that program stays at constant RSS usage forever. /cc ORS team (@jhuge, @lu.xu, @tomo, @xavier_thompson, @Daetalus) /reviewed-by @jerome /reviewed-on https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/24
navytux
added a commit
that referenced
this issue
Dec 20, 2024
…nicode=ustr For pybstr/pyustr cython generates .tp_dealloc that refer to bytes/unicode types directly. That works ok in normal circumstances, but will lead to crash when gpython will start patching builtin str and unicode types with bstr and ustr: (py39.venv) kirr@deca:~/src/tools/go/pygolang-master$ gpython Ошибка сегментирования (образ памяти сброшен на диск) (py39.venv) kirr@deca:~/src/tools/go/pygolang-master$ gdb python core ... Core was generated by `/home/kirr/src/tools/go/py39.venv/bin/python3.9 /home/kirr/src/tools/go/py39.ve'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f2edb247d5c in PyType_HasFeature (type=<error reading variable: Cannot access memory at address 0x7ffc6ca1bff8>, feature=<error reading variable: Cannot access memory at address 0x7ffc6ca1bff0>) at /home/kirr/local/py3.9/include/python3.9/object.h:622 622 { (gdb) bt #0 0x00007f2edb247d5c in PyType_HasFeature (type=<error reading variable: Cannot access memory at address 0x7ffc6ca1bff8>, feature=<error reading variable: Cannot access memory at address 0x7ffc6ca1bff0>) at /home/kirr/local/py3.9/include/python3.9/object.h:622 #1 0x00007f2edb2f4b28 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88982 #2 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #3 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #4 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #5 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #6 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #7 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #8 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #9 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 #10 0x00007f2edb2f4bc8 in __pyx_tp_dealloc_6golang_7_golang__pyustr (o=0x7f2edae99030) at golang/_golang.cpp:88986 ... -> Fix that crash by manually repointing .tp_dealloc of bstr/ustr to .tp_dealloc of original bytes and unicode.
navytux
added a commit
that referenced
this issue
Apr 4, 2025
Trying to import golang on py3.12 crashes with segmentation fault with the following traceback: #0 0x00007f5579f6bfec in Py_INCREF (op=0x0) at /home/kirr/local/py3.12/include/python3.12/object.h:641 #1 __pyx_f_6golang_7_golang__patch_slot (__pyx_v_typ=0x563b309bd6c0 <PyBytes_Type>, __pyx_v_name=0x563b30ac0e00 <_PyRuntime+32128>, __pyx_v_func_or_descr=0x7f557a4e42c0) at golang/_golang.cpp:43758 #2 0x00007f5579f641b9 in __pyx_pf_6golang_7_golang_34_ (__pyx_self=0x0) at golang/_golang.cpp:40581 #3 0x00007f5579f637ba in __pyx_pw_6golang_7_golang_35_ (__pyx_self=0x0, unused=0x0) at golang/_golang.cpp:40427 ... 43750 /* "golang/_golang_str.pyx":1562 43751 * cdef DEL = object() 43752 * cdef _patch_slot(PyTypeObject* typ, str name, object func_or_descr): 43753 * typdict = <dict>(typ.tp_dict) # <<<<<<<<<<<<<< 43754 * #print("\npatching %s.%s with %r" % (typ.tp_name, name, func_or_descr)) 43755 * #print("old: %r" % typdict.get(name)) 43756 */ 43757 __pyx_t_1 = ((PyObject *)__pyx_v_typ->tp_dict); 43758 __Pyx_INCREF(__pyx_t_1); <--- HERE 43759 __pyx_v_typdict = ((PyObject*)__pyx_t_1); 43760 __pyx_t_1 = 0; Here we see that _patch_slots uses PyBytes_Type.tp_dict and hits NULL pointer dereference on it. Before Python3.12 typ.tp_dict was never NULL for any ready type and this code was correct, but starting since py3.12, as Boxiang explains By checking [Python 3.12 type object document](https://docs.python.org/3.12/c-api/typeobj.html#c.PyTypeObject.tp_dict), it said "Changed in version 3.12: Internals detail: For static builtin types, this is always NULL" What is going on here is that in py3.12 they continued the work on subinterpreters (PEP 684) and introduced per-interpreter GIL (https://docs.python.org/3.12/whatsnew/3.12.html#pep-684-a-per-interpreter-gil). The subinterpreters all have their own set of imported modules and objects, but for builtin types like e.g. bytes, str, dict and exception types, those types are shared in between the interpreters since the types are effectively immutable. The sharing is a bit delicate though because there is .__subclasses__ attribute of a type and that attribute can have different values in different subinterpreters. https://peps.python.org/pep-0684/#global-objects explains: Builtin static types are a special case of global objects that will be shared. They are effectively immutable except for one part: __subclasses__ (AKA tp_subclasses). We expect that nothing else on a builtin type will change, even the content of __dict__ (AKA tp_dict). So starting from py3.12 .tp_subclasses is handled specially: for heap types (type objects that are allocated on the heap instead of being static), .tp_subclasses continues to be a pointer. However for static builtin types, .tp_subclasses is now an integer "pointing" to per-interpreter data inside PyInterpreterState.types.builtins array keeping mutable type state there (python/cpython@47e75a00). And even though they were initially saying that the __dict__ might be left intact, later they also discovered that there are ways to modify typ.__dict__ even from python code python/cpython#94673 (comment) python/cpython#88004 and thus that for static types typ.tp_dict should be also considered mutable and kept in per-interpreter state inside PyInterpreterState instead of typ.tp_dict (python/cpython@de64e756). Which caused a bit of backward compatibility pain for tools that were previously accessing .tp_dict directly (python/cpython#105227) and was resolved via exposing PyType_GetDict utility (python/cpython@a840806d). In our crash above we were hitting such NULL .tp_dict for bytes type. -------- The simplest fix is relatively straightforward: use PyType_GetDict instead of directly accessing type's .tp_dict field. A more correct fix when patching slots of a type is to go through all created interpreters and adjust corresponding slot everywhere. This is left as TODO since we do not currently use subinterpreters in practice and with "free threaded" python builds coming, one can achieve GIL-less threading without subinterpreters at all. This patch takes into account original bug report and fix attempt by Boxiang: https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/33#note_231278 https://lab.nexedi.com/Daetalus/pygolang/-/commit/b6a09755 /cc @Daetalus /reviewed-by @jerome, @tomo /reviewed-on https://lab.nexedi.com/nexedi/pygolang/-/merge_requests/35
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Python 3.12 no longer support the imp module (fully deprecated) with note to use importlib as replacement.
Please support python 3.12 by migrating from imp code to importlib. Thanks.
The text was updated successfully, but these errors were encountered: