You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Embedding the python interpreter seems to leak memory when compiled with address sanitizer. This happens even with just constructing and destructing a scoped_iterpreter. This seems to happen with both system python2 and python3 libraries.
=================================================================
==32415==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 385376 byte(s) in 175 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1af69f (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa169f)
Direct leak of 32704 byte(s) in 146 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1afd3a in PyDict_New (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa1d3a)
Direct leak of 15701 byte(s) in 24 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1732a7 (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x652a7)
Direct leak of 12320 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1af4f9 in _PyDict_NewPresized (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa14f9)
Direct leak of 568 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1736ac (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x656ac)
Direct leak of 288 byte(s) in 3 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1b0044 (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa2044)
Direct leak of 224 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1af5f9 in _PyDict_NewPresized (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa15f9)
Direct leak of 128 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1b6942 in _PyObjectDict_SetItem (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa8942)
Direct leak of 72 byte(s) in 5 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1ff686 in PyList_New (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xf1686)
Direct leak of 48 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc864270 in __interceptor_realloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc7270)
#1 0x7ff3dc204564 (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xf6564)
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc17efc8 in PyModule_Create2 (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x70fc8)
Direct leak of 3 byte(s) in 2 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc32c8b1 in PyCode_New (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x21e8b1)
Direct leak of 2 byte(s) in 2 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc178f64 in PyModule_ExecDef (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x6af64)
Indirect leak of 42576 byte(s) in 48 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1732a7 (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x652a7)
Indirect leak of 2816 byte(s) in 22 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1b0cba in _PyDict_NewKeysForClass (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa2cba)
Indirect leak of 1664 byte(s) in 4 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1af69f (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0xa169f)
Indirect leak of 648 byte(s) in 1 object(s) allocated from:
#0 0x7ff3dc863ec0 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc6ec0)
#1 0x7ff3dc1736ac (/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0+0x656ac)
SUMMARY: AddressSanitizer: 495162 byte(s) leaked in 438 allocation(s).
The text was updated successfully, but these errors were encountered:
This looks rather like an issue in Python itself, e.g. https://bugs.python.org/issue25302 (especially since every leak seems to be coming from libpython3.5m.so rather than your leak binary).
Issue description
Embedding the python interpreter seems to leak memory when compiled with address sanitizer. This happens even with just constructing and destructing a
scoped_iterpreter
. This seems to happen with both system python2 and python3 libraries.Environment
g++ (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Reproducible example code
Expected output
Actual output
The text was updated successfully, but these errors were encountered: