nest-simulator icon indicating copy to clipboard operation
nest-simulator copied to clipboard

Memory leak related to model registration

Open akorgor opened this issue 7 months ago • 0 comments

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.

akorgor avatar Jun 11 '25 07:06 akorgor