Skip to content
Snippets Groups Projects

ChronoStatSvc - Clear maps in finalize

All threads resolved!

Side steps leaks such as

Indirect leak of 312 byte(s) in 1 object(s) allocated from:
    #0 0x7f7ddfb5fda8 in operator new(unsigned long) /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-8.2.0/src/gcc/8.2.0/libsanitizer/lsan/lsan_interceptors.cc:229
    #1 0x7f7dc1dcd9ad in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >::allocate(unsigned long, void const*) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/ext/new_allocator.h:111
    #2 0x7f7dc1dcd9ad in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >&, unsigned long) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/alloc_traits.h:436
    #3 0x7f7dc1dcd9ad in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >::_M_get_node() /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/stl_tree.h:599
    #4 0x7f7dc1dcd9ad in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/stl_tree.h:653
    #5 0x7f7dc1dcd9ad in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/stl_tree.h:2414
    #6 0x7f7dc1dc3f58 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ChronoEntity, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ChronoEntity> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/stl_map.h:499
    #7 0x7f7dc1dc3f58 in ChronoStatSvc::getEntity(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workspace/build/Gaudi/GaudiCommonSvc/src/ChronoStatSvc.h:138
    #8 0x7f7dc1dc3f58 in ChronoStatSvc::chronoStart(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workspace/build/Gaudi/GaudiCommonSvc/src/ChronoStatSvc.cpp:276

Note the deeper issue here is it seems sometimes the Application does not cleanly remove all allocated services, as the maps should be cleared by the service deletion. However it appears this is not properly happening.

Clearing the maps at the end of finalize() at least avoids the above leak sanitizer error (due to the allocation storage in each of the std::string's in the maps).

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Marco Clemencic resolved all threads

    resolved all threads

  • Marco Clemencic changed milestone to %v32r2

    changed milestone to %v32r2

  • Marco Clemencic approved this merge request

    approved this merge request

  • Marco Clemencic mentioned in commit 806c1b1e

    mentioned in commit 806c1b1e

  • Please register or sign in to reply
    Loading