nest-simulator
nest-simulator copied to clipboard
Memory leak related to model registration
Valgrind detects memory leaks related to the registration of each node, for example:
==49069== 112 bytes in 1 blocks are definitely lost in loss record 495 of 1,037
==49069== at 0x4846FA3: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==49069== by 0x71EE58C6: nest::ModelManager::create_proxynode_(unsigned long, int) (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x71EE67BD: nest::ModelManager::register_node_model_(nest::Model*) [clone ._omp_fn.0] (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x57EA9CAB: GOMP_parallel (parallel.c:178)
==49069== by 0x71EE65DA: nest::ModelManager::register_node_model_(nest::Model*) (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x71F19991: nest::register_multimeter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x71F06DC0: nest::register_models() (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x71E3AA5E: nest::KernelManager::initialize() (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x71DF254F: neststartup(int*, char***, SLIInterpreter&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in nest/builds/debug_memory/lib/nest/libnest.so.3.8.0-post0.dev0)
==49069== by 0x57E58617: __pyx_pw_12pynestkernel_10NESTEngine_7init(_object*, _object* const*, long, _object*) (in nest/builds/debug_memory/lib/python3.13/site-packages/nest/pynestkernel.so)
==49069== by 0x2BF3DD: UnknownInlinedFun (pycore_call.h:168)
==49069== by 0x2BF3DD: PyObject_Vectorcall (call.c:327)
==49069== by 0x1A6937: _PyEval_EvalFrameDefault.cold (generated_cases.c.h:813)
Probably the node created via https://github.com/nest/nest-simulator/blob/09091994902b091cbd74e4263830db10d5f25449/nestkernel/genericmodel.h#L153 never gets properly de-allocated.