Skip to content
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

[BUG]: memory leaks. #957

Open
jcelerier opened this issue Mar 3, 2025 · 0 comments
Open

[BUG]: memory leaks. #957

jcelerier opened this issue Mar 3, 2025 · 0 comments

Comments

@jcelerier
Copy link

Problem description

When running with asan I'm seeing leaks in multiple traces:

https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140

My code is very basic and only initializes types and enums, it's entirely contained in this file:
https://github.com/celtera/libremidi/blob/master/bindings/python/pylibremidi.cpp#L185

=================================================================
==6022==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1096 byte(s) in 1 object(s) allocated from:
    #0 0x[7](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:8)fdde40fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x5[8](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:9)6d36 in PyObject_Malloc (/usr/bin/python3.12+0x586d36) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b[9](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:10)987)
    #2 0x597fc8  (/usr/bin/python3.12+0x597fc8) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #3 0x7fdddef16634 in nanobind::detail::init(char const*) /home/runner/work/libremidi/libremidi/build/_deps/nanobind-src/src/nb_internals.cpp:370
    #4 0x7fdddea20edb in PyInit_pylibremidi /home/runner/work/libremidi/libremidi/bindings/python/pylibremidi.cpp:185
    #5 0x6a9630  (/usr/bin/python3.12+0x6a9630) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #6 0x6a8d81  (/usr/bin/python3.12+0x6a8d81) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #7 0x582126  (/usr/bin/python3.12+0x582126) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #8 0x5db55a in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5db55a) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #9 0x549f56  (/usr/bin/python3.12+0x549f56) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[10](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:11) 0x54b7e2 in PyObject_CallMethodObjArgs (/usr/bin/python3.12+0x54b7e2) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[11](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:12) 0x5fdd74 in PyImport_ImportModuleLevelObject (/usr/bin/python3.12+0x5fdd74) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[12](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:13) 0x5dc4db in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5dc4db) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[13](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:14) 0x5d58ea in PyEval_EvalCode (/usr/bin/python3.12+0x5d58ea) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #14 0x608b41  (/usr/bin/python3.12+0x608b41) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #15 0x6b4e92  (/usr/bin/python3.12+0x6b4e92) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #16 0x6b4bf9 in _PyRun_SimpleFileObject (/usr/bin/python3.12+0x6b4bf9) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #17 0x6b4a2e in _PyRun_AnyFileObject (/usr/bin/python3.12+0x6b4a2e) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #18 0x6bca94 in Py_RunMain (/usr/bin/python3.12+0x6bca94) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #19 0x6bc57c in Py_BytesMain (/usr/bin/python3.12+0x6bc57c) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #20 0x7fdde342a1c9  (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #21 0x7fdde342a28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #22 0x657ce4 in _start (/usr/bin/python3.12+0x657ce4) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)

Direct leak of 1016 byte(s) in 1 object(s) allocated from:
    #0 0x7fdde40fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x586d36 in PyObject_Malloc (/usr/bin/python3.12+0x586d36) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #2 0x597fc8  (/usr/bin/python3.12+0x597fc8) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #3 0x7fdddef16597 in nanobind::detail::init(char const*) /home/runner/work/libremidi/libremidi/build/_deps/nanobind-src/src/nb_internals.cpp:369
    #4 0x7fdddea20edb in PyInit_pylibremidi /home/runner/work/libremidi/libremidi/bindings/python/pylibremidi.cpp:185
    #5 0x6a9630  (/usr/bin/python3.12+0x6a9630) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #6 0x6a8d81  (/usr/bin/python3.12+0x6a8d81) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #7 0x582126  (/usr/bin/python3.12+0x582126) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #8 0x5db55a in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5db55a) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #9 0x549f56  (/usr/bin/python3.12+0x549f56) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #10 0x54b7e2 in PyObject_CallMethodObjArgs (/usr/bin/python3.12+0x54b7e2) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #11 0x5fdd74 in PyImport_ImportModuleLevelObject (/usr/bin/python3.12+0x5fdd74) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #12 0x5dc4db in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5dc4db) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #13 0x5d58ea in PyEval_EvalCode (/usr/bin/python3.12+0x5d58ea) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[14](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:15) 0x608b41  (/usr/bin/python3.12+0x608b41) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #15 0x5fdd74 in PyImport_ImportModuleLevelObject (/usr/bin/python3.12+0x5fdd74) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #16 0x5dc4db in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5dc4db) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #17 0x5d58ea in PyEval_EvalCode (/usr/bin/python3.12+0x5d58ea) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #18 0x608b41  (/usr/bin/python3.12+0x608b41) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #19 0x6b4e92  (/usr/bin/python3.12+0x6b4e92) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #20 0x6b4bf9 in _PyRun_SimpleFileObject (/usr/bin/python3.12+0x6b4bf9) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #21 0x6b4a2e in _PyRun_AnyFileObject (/usr/bin/python3.12+0x6b4a2e) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #22 0x6bca94 in Py_RunMain (/usr/bin/python3.12+0x6bca94) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #23 0x6bc57c in Py_BytesMain (/usr/bin/python3.12+0x6bc57c) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #24 0x7fdde342a1c9  (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #25 0x7fdde342a28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #26 0x657ce4 in _start (/usr/bin/python3.12+0x657ce4) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)

Indirect leak of 976 byte(s) in 1 object(s) allocated from:
    #0 0x7fdde40fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x586d36 in PyObject_Malloc (/usr/bin/python3.12+0x586d36) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #2 0x597fc8  (/usr/bin/python3.12+0x597fc8) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #3 0x7fdddef16360 in nanobind::detail::init(char const*) /home/runner/work/libremidi/libremidi/build/_deps/nanobind-src/src/nb_internals.cpp:366
    #4 0x7fdddea20edb in PyInit_pylibremidi /home/runner/work/libremidi/libremidi/bindings/python/pylibremidi.cpp:185
    #5 0x6a9630  (/usr/bin/python3.12+0x6a9630) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #6 0x6a8d81  (/usr/bin/python3.12+0x6a8d81) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #7 0x582126  (/usr/bin/python3.12+0x582126) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #8 0x5db55a in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5db55a) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #9 0x549f56  (/usr/bin/python3.12+0x549f56) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #10 0x54b7e2 in PyObject_CallMethodObjArgs (/usr/bin/python3.12+0x54b7e2) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #11 0x5fdd74 in PyImport_ImportModuleLevelObject (/usr/bin/python3.12+0x5fdd74) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #12 0x5dc4db in _PyEval_EvalFrameDefault (/usr/bin/python3.12+0x5dc4db) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #13 0x5d58ea in PyEval_EvalCode (/usr/bin/python3.12+0x5d58ea) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #14 0x608b41  (/usr/bin/python3.12+0x608b41) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[15](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:16) 0x6b4e92  (/usr/bin/python3.12+0x6b4e92) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[16](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:17) 0x6b4bf9 in _PyRun_SimpleFileObject (/usr/bin/python3.12+0x6b4bf9) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[17](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:18) 0x6b4a2e in _PyRun_AnyFileObject (/usr/bin/python3.12+0x6b4a2e) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[18](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:19) 0x6bca94 in Py_RunMain (/usr/bin/python3.12+0x6bca94) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #19 0x6bc57c in Py_BytesMain (/usr/bin/python3.12+0x6bc57c) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)
    #[20](https://github.com/celtera/libremidi/actions/runs/13620071032/job/38068205086?pr=140#step:9:21) 0x7fdde342a1c9  (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #21 0x7fdde342a28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #22 0x657ce4 in _start (/usr/bin/python3.12+0x657ce4) (BuildId: 37451b37c71cb46f8ccb27cb3cdbb7aa004b9987)

Reproducible example code


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant