Re: [Opalvoip-devel] Process with PTLIB & OPAL libraries crashes on exit
Brought to you by:
csoutheren,
rjongbloed
From: Robert J. <ro...@vo...> - 2013-10-06 01:54:22
|
All I can say is "good luck". I spent a whole day trying to figure out what was happening and just disabled it in the end. If you can find a solution that works across various glibc versions, I will be very happy to include it. It should have a performance improvement, that is the whole point, after all. *Robert Jongbloed* OPAL/OpenH323/PTLib Architect and Co-founder. Commercial support at http://www.voxlucida.com.au On 4/10/13 10:48 PM, Юра Чернявский wrote: > Robert, you are right. If I use --with-allocator=std then process is > not crashed. But as I remember with this allocator, process crashes on > heavy load :(. I will check this with last revisions and report if it > crashes. > > Also I builded PTLIB with --with-allocator=mt, and got the same result > as for --with-allocator=bitmap: > > siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), > si_addr=0x0000000000000000 > > and next stack trace: > > __gnu_cxx::__pool<true>::_M_reclaim_block() at 0x385f85b8fc > __gnu_cxx::__mt_alloc<PContainerReference, > PCommonPool<PContainerReference> >::deallocate() at > mt_allocator.h:733 0x7fe0ba20cb38 > PContainerReference::operator delete() at contain.cxx:57 > 0x7fe0ba1ffc16 > PContainer::DestroyReference() at contain.cxx:143 0x7fe0ba20012c > PContainer::Destruct() at contain.cxx:134 0x7fe0ba2000f4 > PAbstractArray::~PAbstractArray() at array.h:71 0x7fe0b9b473f1 > PBaseArray<char>::~PBaseArray() at array.h:277 0x7fe0b9b47502 > PCharArray::~PCharArray() at array.h:553 0x7fe0b9b4756a > PString::~PString() at pstring.h:113 0x7fe0b9b47606 > PCaselessString::~PCaselessString() at pstring.h:1,817 0x7fe0b9b4e006 > std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*>::~pair() at stl_pair.h:68 > 0x7fe0b9de2bce > __gnu_cxx::new_allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> >::destroy() at new_allocator.h:115 > 0x7fe0b9de4df4 > std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*>, > std::_Select1st<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> >, std::less<PCaselessString>, > std::allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> > >::_M_destroy_node() at > stl_tree.h:383 0x7fe0b9de4c29 > std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*>, > std::_Select1st<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> >, std::less<PCaselessString>, > std::allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> > >::_M_erase() at stl_tree.h:972 > 0x7fe0b9de49c9 > std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*>, > std::_Select1st<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> >, std::less<PCaselessString>, > std::allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> > >::_M_erase() at stl_tree.h:970 > 0x7fe0b9de49a6 > std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*>, > std::_Select1st<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> >, std::less<PCaselessString>, > std::allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> > >::~_Rb_tree() at stl_tree.h:614 > 0x7fe0b9de434a > std::map<PCaselessString, PFactoryTemplate<OpalMediaSession, > OpalMediaSession::Init const&, PCaselessString>::WorkerBase*, > std::less<PCaselessString>, > std::allocator<std::pair<PCaselessString const, > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::WorkerBase*> > >::~map() at stl_map.h:87 > 0x7fe0b9de3a98 > PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::~PFactoryTemplate() at pfactory.h:238 0x7fe0b9de3b10 > PParamFactory<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::~PParamFactory() at pfactory.h:421 0x7fe0b9de5064 > PParamFactory<OpalMediaSession, OpalMediaSession::Init const&, > PCaselessString>::~PParamFactory() at pfactory.h:421 0x7fe0b9de5094 > PFactoryBase::FactoryMap::~FactoryMap() at object.cxx:66 > 0x7fe0ba20de20 > exit() at 0x3853435de2 > __libc_start_main() at 0x385341ece4 > _start() at 0x400569 > > > The strange things is that mt & bitmap allocators work with previous > revisions of PTLIB & OPAL :(. > > On 4 окт. 2013, at 13:43, Robert Jongbloed <ro...@vo... > <mailto:ro...@vo...>> wrote: > >> The bitmap allocator does not work on some versions of glibc. If it >> crashes with it enabled, all you can do is not enable it. >> >> *Robert Jongbloed* >> OPAL/OpenH323/PTLib Architect and Co-founder. >> Commercial support at http://www.voxlucida.com.au >> <http://www.voxlucida.com.au/> >> >> On 4/10/13 6:54 PM, Юра Чернявский wrote: >>> Hi opalvoip developers, >>> >>> After update from 30225 to last revision of PTLIB >>> (http://svn.code.sf.net/p/opalvoip/code/ptlib/branches/v2_12) & OPAL >>> (http://svn.code.sf.net/p/opalvoip/code/opal/branches/v3_12), during >>> normal process ends, it crashes with: >>> >>> siginfo:si_signo=SIGSEGV: si_errno=0, si_code=2 (SEGV_ACCERR), >>> si_addr=0x00007fa06c2e1538 >>> >>> and next stack trace: >>> >>> signalHandler() at 0x7fa07137bb00 >>> <signal handler called>() at 0x3853c0f500 >>> __gnu_cxx::__pool<true>::_M_reclaim_block() at 0x385f85b806 >>> __gnu_cxx::__mt_alloc<char, PAbstractArrayPool>::deallocate() at >>> mt_allocator.h:733 0x7fa03b49d2ad >>> PAbstractArray::DestroyContents() at contain.cxx:248 0x7fa03b49092c >>> PContainer::Destruct() at contain.cxx:133 0x7fa03b4903bd >>> PAbstractArray::~PAbstractArray() at array.h:71 0x7fa03add3ab1 >>> PBaseArray<char>::~PBaseArray() at array.h:277 0x7fa03add3bc2 >>> PCharArray::~PCharArray() at array.h:553 0x7fa03add3c2a >>> PString::~PString() at pstring.h:113 0x7fa03add3cc6 >>> PCaselessString::~PCaselessString() at pstring.h:1,817 >>> 0x7fa03add86ee >>> std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*>::~pair() at stl_pair.h:68 >>> 0x7fa03b06cc02 >>> __gnu_cxx::new_allocator<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> >::destroy() at >>> new_allocator.h:115 0x7fa03b06ee28 >>> std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*>, >>> std::_Select1st<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> >, >>> std::less<PCaselessString>, >>> std::allocator<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> > >::_M_destroy_node() at >>> stl_tree.h:383 0x7fa03b06ec5d >>> std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*>, >>> std::_Select1st<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> >, >>> std::less<PCaselessString>, >>> std::allocator<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> > >::_M_erase() at >>> stl_tree.h:972 0x7fa03b06e9fd >>> std::_Rb_tree<PCaselessString, std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*>, >>> std::_Select1st<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> >, >>> std::less<PCaselessString>, >>> std::allocator<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> > >::~_Rb_tree() at >>> stl_tree.h:614 0x7fa03b06e37e >>> std::map<PCaselessString, PFactoryTemplate<OpalMediaSession, >>> OpalMediaSession::Init const&, PCaselessString>::WorkerBase*, >>> std::less<PCaselessString>, >>> std::allocator<std::pair<PCaselessString const, >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::WorkerBase*> > >::~map() at >>> stl_map.h:87 0x7fa03b06dacc >>> PFactoryTemplate<OpalMediaSession, OpalMediaSession::Init >>> const&, PCaselessString>::~PFactoryTemplate() at pfactory.h:238 >>> 0x7fa03b06db44 >>> PParamFactory<OpalMediaSession, OpalMediaSession::Init const&, >>> PCaselessString>::~PParamFactory() at pfactory.h:421 0x7fa03b06f098 >>> PParamFactory<OpalMediaSession, OpalMediaSession::Init const&, >>> PCaselessString>::~PParamFactory() at pfactory.h:421 0x7fa03b06f0c8 >>> PFactoryBase::FactoryMap::~FactoryMap() at object.cxx:66 >>> 0x7fa03b49f534 >>> exit() at 0x3853435de2 >>> __libc_start_main() at 0x385341ece4 >>> _start() at 0x400569 >>> >>> >>> I need to mention that PTLIB builded with --with-allocator=bitmap >>> configure parameter. >>> >>> As I understand process crashes when it starts to delete static >>> objects, but why does it crash and how can I fix it? >>> >>> Which additional information could I proved to simplify localizing >>> of this problem? >>> Any hint is welcome. >>> >>> Sincerely, >>> Yuriy. >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> October Webinars: Code for Performance >>> Free Intel webinars can help you accelerate application performance. >>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from >>> the latest Intel processors and coprocessors. See abstracts and register > >>> http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk >>> >>> >>> _______________________________________________ >>> Opalvoip-devel mailing list >>> Opa...@li... >>> https://lists.sourceforge.net/lists/listinfo/opalvoip-devel >> >> ------------------------------------------------------------------------------ >> October Webinars: Code for Performance >> Free Intel webinars can help you accelerate application performance. >> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >> most from >> the latest Intel processors and coprocessors. See abstracts and >> register > >> http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk_______________________________________________ >> Opalvoip-devel mailing list >> Opa...@li... >> https://lists.sourceforge.net/lists/listinfo/opalvoip-devel > |