logging-log4cxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Westman <peter.west...@visualact.se>
Subject Re: Cannot figure out how to clean correctly
Date Tue, 25 Oct 2016 12:40:52 GMT
Yes, its resource leaks. The 122 errors was from another logging.xml 
then the one supplied in my example (it had an async appender in root, 
with a file and console appender under it), with the example I sent it 
is actually 22 errors (see below). The invalid free is most likely 
something to do with gcc and can be ignored, but the others look to me 
like things I expect LogManager::shutdown() to clean up by looking at 
the code.


These are the errors I get:

==1019== Memcheck, a memory error detector
==1019== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==1019== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for 
copyright info
==1019== Command: ./a.out
==1019== Parent PID: 29912
==1019==
==1019== Invalid free() / delete / delete[]
==1019==    at 0x48CAB6A: free (vg_replace_malloc.c:366)
==1019==    by 0x710E7F3: free_mem (in /lib/libc-2.11.3.so)
==1019==    by 0x710E2B9: __libc_freeres (in /lib/libc-2.11.3.so)
==1019==    by 0x48C24D3: _vgnU_freeres (vg_preloaded.c:62)
==1019==    by 0x7032067: __run_exit_handlers (exit.c:93)
==1019==    by 0x703211E: exit (exit.c:100)
==1019==    by 0x7019C9D: (below main) (libc-start.c:260)
==1019==  Address 0x4bf4498 is not stack'd, malloc'd or (recently) free'd
==1019==
==1019==
==1019== HEAP SUMMARY:
==1019==     in use at exit: 74,161 bytes in 22 blocks
==1019==   total heap usage: 1,487 allocs, 1,467 frees, 119,244 bytes 
allocated
==1019==
==1019== 8 bytes in 1 blocks are indirectly lost in loss record 1 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49B071A: std::_Rb_tree<std::string, 
std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > >, 
std::_Select1st<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >,

std::less<std::string>, std::allocator<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >

 >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base 
const*, std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > 
const&) (new_allocator.h:89)
==1019==    by 0x49B0A32: std::_Rb_tree<std::string, 
std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > >, 
std::_Select1st<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >,

std::less<std::string>, std::allocator<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >

 >::_M_insert_unique(std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > 
const&) (stl_tree.h:1177)
==1019==    by 0x49AF0FD: 
log4cxx::Hierarchy::updateParents(log4cxx::helpers::ObjectPtrT<log4cxx::Logger>) 
(stl_map.h:500)
==1019==    by 0x49AF6F4: log4cxx::Hierarchy::getLogger(std::string 
const&, log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerFactory> 
const&) (hierarchy.cpp:237)
==1019==    by 0x49ACB66: log4cxx::Hierarchy::getLogger(std::string 
const&) (hierarchy.cpp:210)
==1019==    by 0x49C9094: log4cxx::LogManager::getLoggerLS(std::string 
const&) (logmanager.cpp:106)
==1019==    by 0x49C91A6: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:121)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 14 bytes in 1 blocks are indirectly lost in loss record 2 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x6DB6795: std::string::_Rep::_S_create(unsigned int, 
unsigned int, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB77C3: ??? (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7A41: std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >::basic_string(std::string 
const&, unsigned int, unsigned int) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x49AED78: 
log4cxx::Hierarchy::updateParents(log4cxx::helpers::ObjectPtrT<log4cxx::Logger>) 
(basic_string.h:2003)
==1019==    by 0x49AF6F4: log4cxx::Hierarchy::getLogger(std::string 
const&, log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerFactory> 
const&) (hierarchy.cpp:237)
==1019==    by 0x49ACB66: log4cxx::Hierarchy::getLogger(std::string 
const&) (hierarchy.cpp:210)
==1019==    by 0x49C9094: log4cxx::LogManager::getLoggerLS(std::string 
const&) (logmanager.cpp:106)
==1019==    by 0x49C91A6: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:121)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 16 bytes in 1 blocks are indirectly lost in loss record 3 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x6DB6795: std::string::_Rep::_S_create(unsigned int, 
unsigned int, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7BA7: 
std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int) 
(in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB828C: std::string::reserve(unsigned int) (in 
/usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x4A1AE2E: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:248)
==1019==    by 0x49C9197: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:120)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 17 bytes in 1 blocks are indirectly lost in loss record 4 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x6DB6795: std::string::_Rep::_S_create(unsigned int, 
unsigned int, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7493: ??? (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7685: std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >::basic_string(char 
const*, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x49F6A4A: 
log4cxx::spi::RootLogger::RootLogger(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::Level> const&) (rootlogger.cpp:28)
==1019==    by 0x49AD116: log4cxx::Hierarchy::Hierarchy() (hierarchy.cpp:58)
==1019==    by 0x49C8A8D: log4cxx::LogManager::getLoggerRepository() 
(logmanager.cpp:87)
==1019==    by 0x4998C5A: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 18 bytes in 1 blocks are indirectly lost in loss record 5 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x6DB6795: std::string::_Rep::_S_create(unsigned int, 
unsigned int, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7493: ??? (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x6DB7685: std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >::basic_string(char 
const*, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==1019==    by 0x49B75CB: log4cxx::Level::getDebug() (level.cpp:53)
==1019==    by 0x49B7D1F: log4cxx::Level::toLevelLS(std::string const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::Level> const&) (level.cpp:190)
==1019==    by 0x49DB7FD: 
log4cxx::helpers::OptionConverter::toLevel(std::string const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::Level> const&) 
(optionconverter.cpp:261)
==1019==    by 0x4991D19: 
log4cxx::xml::DOMConfigurator::parseLevel(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool) 
(domconfigurator.cpp:668)
==1019==    by 0x499619A: 
log4cxx::xml::DOMConfigurator::parseChildrenOfLoggerElement(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool, 
apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:495)
==1019==    by 0x49968B6: 
log4cxx::xml::DOMConfigurator::parseRoot(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:449)
==1019==    by 0x4997E2A: 
log4cxx::xml::DOMConfigurator::parse(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:977)
==1019==    by 0x4998890: 
log4cxx::xml::DOMConfigurator::doConfigure(log4cxx::File const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository>&) 
(domconfigurator.cpp:758)
==1019==
==1019== 20 bytes in 1 blocks are indirectly lost in loss record 6 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49B75D7: log4cxx::Level::getDebug() (level.cpp:53)
==1019==    by 0x49B7D1F: log4cxx::Level::toLevelLS(std::string const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::Level> const&) (level.cpp:190)
==1019==    by 0x49DB7FD: 
log4cxx::helpers::OptionConverter::toLevel(std::string const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::Level> const&) 
(optionconverter.cpp:261)
==1019==    by 0x4991D19: 
log4cxx::xml::DOMConfigurator::parseLevel(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool) 
(domconfigurator.cpp:668)
==1019==    by 0x499619A: 
log4cxx::xml::DOMConfigurator::parseChildrenOfLoggerElement(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool, 
apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:495)
==1019==    by 0x49968B6: 
log4cxx::xml::DOMConfigurator::parseRoot(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:449)
==1019==    by 0x4997E2A: 
log4cxx::xml::DOMConfigurator::parse(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:977)
==1019==    by 0x4998890: 
log4cxx::xml::DOMConfigurator::doConfigure(log4cxx::File const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository>&) 
(domconfigurator.cpp:758)
==1019==    by 0x4998C7B: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 28 bytes in 1 blocks are indirectly lost in loss record 7 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49B0B34: std::_Rb_tree<std::string, 
std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> >, 
std::_Select1st<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > >, 
std::less<std::string>, std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > 
 >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base 
const*, std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > const&) (new_allocator.h:89)
==1019==    by 0x49B0DD2: std::_Rb_tree<std::string, 
std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> >, 
std::_Select1st<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > >, 
std::less<std::string>, std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > 
 >::_M_insert_unique(std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > const&) (stl_tree.h:1177)
==1019==    by 0x49AF5B4: log4cxx::Hierarchy::getLogger(std::string 
const&, log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerFactory> 
const&) (stl_map.h:500)
==1019==    by 0x49ACB66: log4cxx::Hierarchy::getLogger(std::string 
const&) (hierarchy.cpp:210)
==1019==    by 0x49C9094: log4cxx::LogManager::getLoggerLS(std::string 
const&) (logmanager.cpp:106)
==1019==    by 0x49C91A6: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:121)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 32 bytes in 1 blocks are indirectly lost in loss record 8 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49B06AE: std::_Rb_tree<std::string, 
std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > >, 
std::_Select1st<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >,

std::less<std::string>, std::allocator<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >

 >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base 
const*, std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > 
const&) (new_allocator.h:89)
==1019==    by 0x49B0A32: std::_Rb_tree<std::string, 
std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > >, 
std::_Select1st<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >,

std::less<std::string>, std::allocator<std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > >

 >::_M_insert_unique(std::pair<std::string const, 
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, 
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger> > > > 
const&) (stl_tree.h:1177)
==1019==    by 0x49AF0FD: 
log4cxx::Hierarchy::updateParents(log4cxx::helpers::ObjectPtrT<log4cxx::Logger>) 
(stl_map.h:500)
==1019==    by 0x49AF6F4: log4cxx::Hierarchy::getLogger(std::string 
const&, log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerFactory> 
const&) (hierarchy.cpp:237)
==1019==    by 0x49ACB66: log4cxx::Hierarchy::getLogger(std::string 
const&) (hierarchy.cpp:210)
==1019==    by 0x49C9094: log4cxx::LogManager::getLoggerLS(std::string 
const&) (logmanager.cpp:106)
==1019==    by 0x49C91A6: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:121)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 64 bytes in 1 blocks are indirectly lost in loss record 9 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49AD0FE: log4cxx::Hierarchy::Hierarchy() (hierarchy.cpp:58)
==1019==    by 0x49C8A8D: log4cxx::LogManager::getLoggerRepository() 
(logmanager.cpp:87)
==1019==    by 0x4998C5A: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 64 bytes in 1 blocks are indirectly lost in loss record 10 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x498FCB8: 
log4cxx::DefaultLoggerFactory::makeNewLoggerInstance(log4cxx::helpers::Pool&, 
std::string const&) const (defaultloggerfactory.cpp:29)
==1019==    by 0x49AF55B: log4cxx::Hierarchy::getLogger(std::string 
const&, log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerFactory> 
const&) (hierarchy.cpp:226)
==1019==    by 0x49ACB66: log4cxx::Hierarchy::getLogger(std::string 
const&) (hierarchy.cpp:210)
==1019==    by 0x49C9094: log4cxx::LogManager::getLoggerLS(std::string 
const&) (logmanager.cpp:106)
==1019==    by 0x49C91A6: log4cxx::LogManager::getLogger(std::string 
const&) (logmanager.cpp:121)
==1019==    by 0x49C23B1: log4cxx::Logger::getLogger(char const*) 
(logger.cpp:499)
==1019==    by 0x80493F3: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 78 (24 direct, 54 indirect) bytes in 1 blocks are definitely 
lost in loss record 11 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49AD069: log4cxx::Hierarchy::Hierarchy() (hierarchy.cpp:55)
==1019==    by 0x49C8A8D: log4cxx::LogManager::getLoggerRepository() 
(logmanager.cpp:87)
==1019==    by 0x4998C5A: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 104 bytes in 1 blocks are still reachable in loss record 12 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C3105E: apr_allocator_create (apr_pools.c:129)
==1019==    by 0x4C322BD: apr_pool_initialize (apr_pools.c:587)
==1019==    by 0x4C341A6: apr_initialize (start.c:55)
==1019==    by 0x4977DFC: 
log4cxx::helpers::APRInitializer::APRInitializer() (aprinitializer.cpp:44)
==1019==    by 0x4977F31: 
log4cxx::helpers::APRInitializer::getInstance() (aprinitializer.cpp:77)
==1019==    by 0x49780E6: log4cxx::helpers::APRInitializer::initialize() 
(aprinitializer.cpp:83)
==1019==    by 0x49D4F00: log4cxx::helpers::ObjectImpl::ObjectImpl() 
(objectimpl.cpp:30)
==1019==    by 0x497F19E: 
log4cxx::helpers::CharsetDecoder::CharsetDecoder() (charsetdecoder.cpp:413)
==1019==    by 0x497F217: 
log4cxx::helpers::CharsetDecoder::createDefaultDecoder() 
(charsetdecoder.cpp:360)
==1019==    by 0x497FC06: 
log4cxx::helpers::CharsetDecoder::getDefaultDecoder() 
(charsetdecoder.cpp:435)
==1019==    by 0x4A1AF35: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:247)
==1019==
==1019== 251 (24 direct, 227 indirect) bytes in 1 blocks are definitely 
lost in loss record 13 of 22
==1019==    at 0x48CB71C: operator new(unsigned int) 
(vg_replace_malloc.c:255)
==1019==    by 0x49AD03C: log4cxx::Hierarchy::Hierarchy() (hierarchy.cpp:55)
==1019==    by 0x49C8A8D: log4cxx::LogManager::getLoggerRepository() 
(logmanager.cpp:87)
==1019==    by 0x4998C5A: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 14 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x497F22D: 
log4cxx::helpers::CharsetDecoder::createDefaultDecoder() 
(charsetdecoder.cpp:360)
==1019==    by 0x497FC06: 
log4cxx::helpers::CharsetDecoder::getDefaultDecoder() 
(charsetdecoder.cpp:435)
==1019==    by 0x4A1AF35: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:247)
==1019==    by 0x49A03CF: std::string 
decodeLS<char>(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&) (file.cpp:45)
==1019==    by 0x49A0410: log4cxx::File::File(std::string const&) 
(file.cpp:51)
==1019==    by 0x4998C55: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:765)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 15 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x49ACFE5: log4cxx::Hierarchy::Hierarchy() (hierarchy.cpp:55)
==1019==    by 0x49C8A8D: log4cxx::LogManager::getLoggerRepository() 
(logmanager.cpp:87)
==1019==    by 0x4998C5A: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 16 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x4998517: 
log4cxx::xml::DOMConfigurator::doConfigure(log4cxx::File const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository>&) 
(domconfigurator.cpp:726)
==1019==    by 0x4998C7B: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 17 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x498110D: 
log4cxx::helpers::CharsetEncoder::createDefaultEncoder() 
(charsetencoder.cpp:376)
==1019==    by 0x49819F6: 
log4cxx::helpers::CharsetEncoder::getDefaultEncoder() 
(charsetencoder.cpp:442)
==1019==    by 0x4A1AD53: 
log4cxx::helpers::Transcoder::encode(std::string const&, std::string&) 
(transcoder.cpp:288)
==1019==    by 0x4A1B1C7: 
log4cxx::helpers::Transcoder::encode(std::string const&, 
log4cxx::helpers::Pool&) (transcoder.cpp:277)
==1019==    by 0x49A05AF: 
log4cxx::File::getPath(log4cxx::helpers::Pool&) const (file.cpp:126)
==1019==    by 0x49A08B5: log4cxx::File::open(apr_file_t**, int, int, 
log4cxx::helpers::Pool&) const (file.cpp:133)
==1019==    by 0x499853D: 
log4cxx::xml::DOMConfigurator::doConfigure(log4cxx::File const&, 
log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository>&) 
(domconfigurator.cpp:729)
==1019==    by 0x4998C7B: 
log4cxx::xml::DOMConfigurator::configure(std::string const&) 
(domconfigurator.cpp:766)
==1019==    by 0x8049396: main (in 
/home/peter/repos/git/v6.1/components/axis/component-tests/a.out)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 18 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x4975F07: log4cxx::AppenderSkeleton::AppenderSkeleton() 
(appenderskeleton.cpp:43)
==1019==    by 0x4A1D59B: log4cxx::WriterAppender::WriterAppender() 
(writerappender.cpp:30)
==1019==    by 0x49A16E7: log4cxx::FileAppender::FileAppender() 
(fileappender.cpp:38)
==1019==    by 0x49A35E2: 
log4cxx::FileAppender::ClazzFileAppender::newInstance() const 
(fileappender.h:65)
==1019==    by 0x499414A: 
log4cxx::xml::DOMConfigurator::parseAppender(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:195)
==1019==    by 0x499571C: 
log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::string const&, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:141)
==1019==    by 0x49957A0: 
log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::string const&, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:145)
==1019==    by 0x4995B6B: 
log4cxx::xml::DOMConfigurator::findAppenderByReference(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:169)
==1019==    by 0x4995EDD: 
log4cxx::xml::DOMConfigurator::parseChildrenOfLoggerElement(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool, 
apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:477)
==1019==
==1019== 8,192 bytes in 1 blocks are still reachable in loss record 19 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x49E5907: log4cxx::helpers::Pool::Pool() (pool.cpp:34)
==1019==    by 0x49A5559: 
log4cxx::helpers::FileOutputStream::FileOutputStream(std::string const&, 
bool) (fileoutputstream.cpp:35)
==1019==    by 0x49A1B03: log4cxx::FileAppender::setFile(std::string 
const&, bool, bool, unsigned int, log4cxx::helpers::Pool&) 
(fileappender.cpp:269)
==1019==    by 0x49A2535: 
log4cxx::FileAppender::activateOptions(log4cxx::helpers::Pool&) 
(fileappender.cpp:155)
==1019==    by 0x49EE836: 
log4cxx::config::PropertySetter::activate(log4cxx::helpers::Pool&) 
(propertysetter.cpp:102)
==1019==    by 0x4994886: 
log4cxx::xml::DOMConfigurator::parseAppender(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:273)
==1019==    by 0x499571C: 
log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::string const&, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:141)
==1019==    by 0x49957A0: 
log4cxx::xml::DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::string const&, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:145)
==1019==    by 0x4995B6B: 
log4cxx::xml::DOMConfigurator::findAppenderByReference(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:169)
==1019==    by 0x4995EDD: 
log4cxx::xml::DOMConfigurator::parseChildrenOfLoggerElement(log4cxx::helpers::Pool&, 
log4cxx::helpers::ObjectPtrT<log4cxx::helpers::CharsetDecoder>&, 
apr_xml_elem*, log4cxx::helpers::ObjectPtrT<log4cxx::Logger>, bool, 
apr_xml_doc*, std::map<std::string, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender>, std::less<std::string>, 
std::allocator<std::pair<std::string const, 
log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > > >&) 
(domconfigurator.cpp:477)
==1019==
==1019== 8,192 bytes in 1 blocks are possibly lost in loss record 20 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x4C322F7: apr_pool_initialize (apr_pools.c:592)
==1019==    by 0x4C341A6: apr_initialize (start.c:55)
==1019==    by 0x4977DFC: 
log4cxx::helpers::APRInitializer::APRInitializer() (aprinitializer.cpp:44)
==1019==    by 0x4977F31: 
log4cxx::helpers::APRInitializer::getInstance() (aprinitializer.cpp:77)
==1019==    by 0x49780E6: log4cxx::helpers::APRInitializer::initialize() 
(aprinitializer.cpp:83)
==1019==    by 0x49D4F00: log4cxx::helpers::ObjectImpl::ObjectImpl() 
(objectimpl.cpp:30)
==1019==    by 0x497F19E: 
log4cxx::helpers::CharsetDecoder::CharsetDecoder() (charsetdecoder.cpp:413)
==1019==    by 0x497F217: 
log4cxx::helpers::CharsetDecoder::createDefaultDecoder() 
(charsetdecoder.cpp:360)
==1019==    by 0x497FC06: 
log4cxx::helpers::CharsetDecoder::getDefaultDecoder() 
(charsetdecoder.cpp:435)
==1019==    by 0x4A1AF35: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:247)
==1019==
==1019== 8,192 bytes in 1 blocks are possibly lost in loss record 21 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x4C341CF: apr_initialize (start.c:58)
==1019==    by 0x4977DFC: 
log4cxx::helpers::APRInitializer::APRInitializer() (aprinitializer.cpp:44)
==1019==    by 0x4977F31: 
log4cxx::helpers::APRInitializer::getInstance() (aprinitializer.cpp:77)
==1019==    by 0x49780E6: log4cxx::helpers::APRInitializer::initialize() 
(aprinitializer.cpp:83)
==1019==    by 0x49D4F00: log4cxx::helpers::ObjectImpl::ObjectImpl() 
(objectimpl.cpp:30)
==1019==    by 0x497F19E: 
log4cxx::helpers::CharsetDecoder::CharsetDecoder() (charsetdecoder.cpp:413)
==1019==    by 0x497F217: 
log4cxx::helpers::CharsetDecoder::createDefaultDecoder() 
(charsetdecoder.cpp:360)
==1019==    by 0x497FC06: 
log4cxx::helpers::CharsetDecoder::getDefaultDecoder() 
(charsetdecoder.cpp:435)
==1019==    by 0x4A1AF35: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:247)
==1019==    by 0x49A03CF: std::string 
decodeLS<char>(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&) (file.cpp:45)
==1019==
==1019== 8,192 bytes in 1 blocks are possibly lost in loss record 22 of 22
==1019==    at 0x48CAF50: malloc (vg_replace_malloc.c:236)
==1019==    by 0x4C32193: apr_pool_create_ex (apr_pools.c:349)
==1019==    by 0x4977E1C: 
log4cxx::helpers::APRInitializer::APRInitializer() (aprinitializer.cpp:45)
==1019==    by 0x4977F31: 
log4cxx::helpers::APRInitializer::getInstance() (aprinitializer.cpp:77)
==1019==    by 0x49780E6: log4cxx::helpers::APRInitializer::initialize() 
(aprinitializer.cpp:83)
==1019==    by 0x49D4F00: log4cxx::helpers::ObjectImpl::ObjectImpl() 
(objectimpl.cpp:30)
==1019==    by 0x497F19E: 
log4cxx::helpers::CharsetDecoder::CharsetDecoder() (charsetdecoder.cpp:413)
==1019==    by 0x497F217: 
log4cxx::helpers::CharsetDecoder::createDefaultDecoder() 
(charsetdecoder.cpp:360)
==1019==    by 0x497FC06: 
log4cxx::helpers::CharsetDecoder::getDefaultDecoder() 
(charsetdecoder.cpp:435)
==1019==    by 0x4A1AF35: 
log4cxx::helpers::Transcoder::decode(std::string const&, std::string&) 
(transcoder.cpp:247)
==1019==    by 0x49A03CF: std::string 
decodeLS<char>(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&) (file.cpp:45)
==1019==    by 0x49A0410: log4cxx::File::File(std::string const&) 
(file.cpp:51)
==1019==
==1019== LEAK SUMMARY:
==1019==    definitely lost: 48 bytes in 2 blocks
==1019==    indirectly lost: 281 bytes in 10 blocks
==1019==      possibly lost: 24,576 bytes in 3 blocks
==1019==    still reachable: 49,256 bytes in 7 blocks
==1019==         suppressed: 0 bytes in 0 blocks
==1019==
==1019== For counts of detected and suppressed errors, rerun with: -v
==1019== ERROR SUMMARY: 7 errors from 6 contexts (suppressed: 35 from 6)


On 10/25/2016 02:17 PM, Thorsten Schöning wrote:
> Guten Tag Peter Westman,
> am Dienstag, 25. Oktober 2016 um 13:51 schrieben Sie:
>
>> I get tons of valgrind errors (112 to be exact)[...]
> I don't know valgrind very well, so what kind of errors are you
> talking about? If it's resource leaks, some of those are known and
> accepted to fix problems with multi threading apps and such.
>
> https://issues.apache.org/jira/browse/LOGCXX-322
>
> Mit freundlichen Grüßen,
>
> Thorsten Schöning
>


Mime
View raw message