New submission from Matt Clarkson: I have the following `main.cpp`
``` #include <Python.h> int main() { Py_Initialize(); if (!Py_IsInitialized()) return 1; Py_Finalize(); return 0; } ``` Compiled with on Arch Linux 4.2.1 gcc 5.2.0 python 3.4.3: ``` g++ -fsanitize=address main.cpp -o main `python-config --includes --ldflags ``` I end up with 424764 byte(s) leaked in 316 allocation(s). I can suppress the leaks in the following ways: ``` # These are the high level functions that leak (i.e. the *top* of the call stack) #leak:Py_Initialize #leak:Py_Finalize #leak:PyEval_EvalCode # Low level private functions that leak (i.e. the *bottom* of the call stack) leak:new_keys_object leak:type_new leak:new_dict_with_shared_keys leak:make_keys_shared leak:_PyObject_Malloc leak:PyList_New # The closest to the leak public functions (i.e. closest to the *top* of the call stack) #leak:PyUnicode_New #leak:PyList_New #leak:PyFrame_New #leak:PyDict_New #leak:PyBytes_FromStringAndSize #leak:PyObject_Call #leak:PyType_Ready #leak:PyDict_Merge #leak:PyDict_SetItemString #leak:PyEval_EvalFrameEx ``` I read in the `PyInitalize` documentation that circular references, etc might not be freed but 424764 bytes seems a lot just for initializing the Python engine. I would like to help out solving the memory leaks, if that is possible? ---------- components: Interpreter Core files: leak.log messages: 252136 nosy: Matt Clarkson priority: normal severity: normal status: open title: Memory Leaks with Address Sanitizer type: resource usage versions: Python 3.4 Added file: http://bugs.python.org/file40659/leak.log _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue25302> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com