Bugzilla – Bug 1217075
yast-python bindings leak
Last modified: 2023-11-13 09:43:21 UTC
when using a long running yast ui written in python I observe the process size keeps increasing. Normally this is not problematic as yast UI clients are short lived. However in my case I am using a yast ui written in python that runs indefinitely on a low memory device (raspberry pi) and this becomes problematic. This is a pretty specific and not normal use case so normal priority and no need for backporting imho a valgrind trace as follows shows where the leak is occuring ==7090== 36,488 (968 direct, 35,520 indirect) bytes in 121 blocks are definitely lost in loss record 22,946 of 22,956 ==7090== at 0x4843F0F: operator new(unsigned long) (vg_replace_malloc.c:472) ==7090== by 0x5882E06: _wrap_new_Term__SWIG_1 (yast-core_wrap.cxx:6201) ==7090== by 0x5882E06: _wrap_new_Term (yast-core_wrap.cxx:6268) ==7090== by 0x5A77B8F: cfunction_call (methodobject.c:553) ==7090== by 0x5A882C0: _PyObject_Call (call.c:343) ==7090== by 0x5A68B76: _PyEval_EvalFrameDefault (ceval.c:5381) ==7090== by 0x5A608B9: UnknownInlinedFun (pycore_ceval.h:73) ==7090== by 0x5A608B9: _PyEval_Vector (ceval.c:6439) ==7090== by 0x5A5EC3A: UnknownInlinedFun (call.c:393) ==7090== by 0x5A5EC3A: _PyObject_FastCallDictTstate (call.c:141) ==7090== by 0x5A86C7E: UnknownInlinedFun (call.c:482) ==7090== by 0x5A86C7E: slot_tp_init (typeobject.c:7854) ==7090== by 0x5A5C0C2: type_call (typeobject.c:1103) ==7090== by 0x5A5BECE: _PyObject_MakeTpCall (call.c:214) ==7090== by 0x5A646F9: _PyEval_EvalFrameDefault (ceval.c:4774) ==7090== by 0x5A608B9: UnknownInlinedFun (pycore_ceval.h:73) ==7090== by 0x5A608B9: _PyEval_Vector (ceval.c:6439) ==7090== by 0x5A68B76: _PyEval_EvalFrameDefault (ceval.c:5381) ==7090== by 0x5A608B9: UnknownInlinedFun (pycore_ceval.h:73) ==7090== by 0x5A608B9: _PyEval_Vector (ceval.c:6439) ==7090== by 0x5AE385E: PyEval_EvalCode (ceval.c:1154) ==7090== by 0x5B01282: run_eval_code_obj (pythonrun.c:1712) ==7090== by 0x5AFD979: run_mod (pythonrun.c:1733) ==7090== by 0x5B136C1: pyrun_file (pythonrun.c:1628) ==7090== by 0x5B13183: _PyRun_SimpleFileObject (pythonrun.c:440) ==7090== by 0x5A43FAF: PyRun_SimpleFileExFlags (pythonrun.c:473) ==7090== by 0x588C515: callClient(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (Y2PythonClientComponent.cc:69) ==7090== by 0x588C76D: Y2PythonClientComponent::doActualWork(YCPList const&, Y2Component*) (Y2PythonClientComponent.cc:98) ==7090== by 0x48B69DA: main (genericfrontend.cc:766)