Home » PANDA » PandaRoot » Bugs, Fixes, Releases » Memory leaks in digitization (TPC!)
Re: Memory leaks in digitization (TPC!) [message #11032 is a reply to message #11029] |
Fri, 24 September 2010 17:14   |
StefanoSpataro
Messages: 2736 Registered: June 2005 Location: Torino
|
first-grade participant |
 From: *to.infn.it
|
|
Hi,
from valgrind the message has disappeared, and running the digi, after 3k events I cannot see a crash (not yet, at least).
If I check valgrind, it seems there is still something that can be improved for tpc, from PndTpcClusterFinder:
==22081== 10,083,067 bytes in 547,009 blocks are possibly lost in loss record 457 of 461
==22081== at 0x4004790: operator new(unsigned) (vg_replace_malloc.c:164)
==22081== by 0xC17971: std::string::_Rep::_S_create(unsigned, unsigned, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.3)
==22081== by 0xC19DF4: (within /usr/lib/libstdc++.so.6.0.3)
==22081== by 0xC19F01: std::string::string(char const*, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.3)
==22081== by 0x9909D3D: padprocessor::reset() (TORPadProcessor.cxx:99)
==22081== by 0x990F622: PndTpcSectorProcessor::reset() (PndTpcSectorProcessor.cxx:176)
==22081== by 0x98F4FC3: PndTpcClusterFinder::process(std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> >&) (PndTpcClusterFinder.cxx:119)
==22081== 8,448 (2,940 direct, 5,508 indirect) bytes in 245 blocks are definitely lost in loss record 363 of 461
==22081== at 0x4004790: operator new(unsigned) (vg_replace_malloc.c:164)
==22081== by 0x990CC1D: ppstate_output::heartbeat() (TORPPState_Output.cxx:40)
==22081== by 0x9909DED: padprocessor::heartbeat() (TORPadProcessor.cxx:105)
==22081== by 0x990F3CD: PndTpcSectorProcessor::process() (PndTpcSectorProcessor.cxx:117)
==22081== by 0x98F4FA8: PndTpcClusterFinder::process(std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> >&) (PndTpcClusterFinder.cxx:118)
==22081== 48 bytes in 1 blocks are possibly lost in loss record 188 of 461
==22081== at 0x4004790: operator new(unsigned) (vg_replace_malloc.c:164)
==22081== by 0x98E06DF: __gnu_cxx::new_allocator<PndTpcDigi*>::allocate(unsigned, void const*) (new_allocator.h:81)
==22081== by 0x98E04BC: std::_Vector_base<PndTpcDigi*, std::allocator<PndTpcDigi*> >::_M_allocate(unsigned) (stl_vector.h:113)
==22081== by 0x990D036: std::_Vector_base<PndTpcDigi*, std::allocator<PndTpcDigi*> >::_Vector_base(unsigned, std::allocator<PndTpcDigi*> const&) (stl_vector.h:100)
==22081== by 0x990CE99: std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> >::vector(std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> > const&) (stl_vector.h:221)
==22081== by 0x990CC38: ppstate_output::heartbeat() (TORPPState_Output.cxx:40)
==22081== by 0x9909DED: padprocessor::heartbeat() (TORPadProcessor.cxx:105)
==22081== by 0x990F3CD: PndTpcSectorProcessor::process() (PndTpcSectorProcessor.cxx:117)
==22081== by 0x98F4FA8: PndTpcClusterFinder::process(std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> >&) (PndTpcClusterFinder.cxx:118)
==22081== 12 bytes in 1 blocks are possibly lost in loss record 81 of 461
==22081== at 0x4004790: operator new(unsigned) (vg_replace_malloc.c:164)
==22081== by 0x990CC1D: ppstate_output::heartbeat() (TORPPState_Output.cxx:40)
==22081== by 0x9909DED: padprocessor::heartbeat() (TORPadProcessor.cxx:105)
==22081== by 0x990F3CD: PndTpcSectorProcessor::process() (PndTpcSectorProcessor.cxx:117)
==22081== by 0x98F4FA8: PndTpcClusterFinder::process(std::vector<PndTpcDigi*, std::allocator<PndTpcDigi*> >&) (PndTpcClusterFinder.cxx:118)
The first should be the most... important, but it does not seem to crash digitization (I am waiting the end of 20k dpm events... who knows).
Thanks for the "Electronic" fix.
|
|
|
Goto Forum:
Current Time: Wed Feb 12 05:09:16 CET 2025
Total time taken to generate the page: 0.00745 seconds
|