I am experiencing a crash in log4cxx 0.10.0 when my application exits,
and my initial investigation made me hope that your patch for
LOGCXX-322 would sort it out.

I re-tested with log4cxx Trunk (svn checkout
http://svn.apache.org/repos/asf/incubator/log4cxx/trunk
apache-log4cxx) but the problem still exists.

Have you any idea what may be causing it?  (My log4cxx dll is named
log4cxx_adtyco_tpl.dll.)

-- I have tried statically linking to log4cxx but in that instance the
DLL that uses log4cxx suffers the same fate.
-- I have tried with and without APR_HAS_THREADS - no obvious change
to the stack trace.
-- log4cxx has been used in my application for years without any
problems. Is there anything I may have introduced in my own code or
DLL structure that might have triggered this?
-- The weird .NET stuff you see at the beginning of the stack trace is
a .NET Runtime Callable Wrapper being disposed as a result of my use
of COM to integrate my native code with a .NET application. This is
some .NET garbage collecting, auto-dispose magic that I cannot really
control, I don't think. Again, this .NET auto-disposal stuff has been
part of my application for years.


Thanks for any help.

-- 
Sean Dynan
Senior Principal Software Engineer / Tyco Security Products




>msvcr120.dll!abort() Line 88C
 
log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectPtrT<log4cxx::Logger>::~ObjectPtrT<log4cxx::Logger>()
Line 102
 log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectPtrT<log4cxx::Logger>::`vector
deleting destructor'()
 
log4cxx_adtyco_tpl.dll!std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::pattern::PatternConverter>
>::destroy<log4cxx::helpers::ObjectPtrT<log4cxx::pattern::PatternConverter>
>(_Ptr=0x08f4df48) Line 608
 
log4cxx_adtyco_tpl.dll!std::allocator_traits<std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::spi::HierarchyEventListener>
> >::destroy<log4cxx::helpers::ObjectPtrT<log4cxx::spi::HierarchyEventListener>
>(_Al={...}, _Ptr=0x08f4df48) Line 731
 
log4cxx_adtyco_tpl.dll!std::_Wrap_alloc<std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::ObjectOutputStream>
> >::destroy<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::ObjectOutputStream>
>(_Ptr=0x08f4df48) Line 879
 
log4cxx_adtyco_tpl.dll!std::_Destroy_range<std::_Wrap_alloc<std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::ObjectOutputStream>
> > >(_First=0x08f4df48, _Last=0x08f4df50, _Al={...}, __formal={...})
Line 82
 
log4cxx_adtyco_tpl.dll!std::_Destroy_range<std::_Wrap_alloc<std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::InetAddress>
> > >(_First=0x08f4df48, _Last=0x08f4df50, _Al={...}) Line 96
 
log4cxx_adtyco_tpl.dll!std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>
> >::_Destroy(_First=0x08f4df48, _Last=0x08f4df50) Line 1567
 
log4cxx_adtyco_tpl.dll!std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>
> >::_Tidy() Line 1628
 
log4cxx_adtyco_tpl.dll!std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>
> >::~vector<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::helpers::Socket>
> >() Line 946
 
log4cxx_adtyco_tpl.dll!std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >::~pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >()
 
log4cxx_adtyco_tpl.dll!std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >::`scalar deleting destructor'()
 
log4cxx_adtyco_tpl.dll!std::allocator<std::_Tree_node<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >,void *> 
> > >>::destroy<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >(_Ptr=0x1921d550) Line 608
 
log4cxx_adtyco_tpl.dll!std::allocator_traits<std::allocator<std::_Tree_node<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >,void *> >
>::destroy<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >(_Al={...}, _Ptr=0x1921d550) Line 731
 
log4cxx_adtyco_tpl.dll!std::_Wrap_alloc<std::allocator<std::_Tree_node<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > >,void *> >
>::destroy<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >(_Ptr=0x1921d550) Line 879
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >::_Erase(_Rootnode=0x1921d540) Line 2083
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >::_Erase(_Rootnode=0x1921da80) Line 2079
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >::clear() Line 1541
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >::erase(_First={...}, _Last={...}) Line 1515
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >::_Tidy() Line 2231
 
log4cxx_adtyco_tpl.dll!std::_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> 
> > > >>::~_Tree<std::_Tmap_traits<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > >,0> >() Line 1193
 
log4cxx_adtyco_tpl.dll!std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > > >::~map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > > >()
 
log4cxx_adtyco_tpl.dll!std::map<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
>,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> >,std::less<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> >,std::allocator<std::pair<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>
> const 
> ,std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::Logger>
> > > > >::`scalar deleting destructor'()
 log4cxx_adtyco_tpl.dll!log4cxx::Hierarchy::~Hierarchy() Line 71
 log4cxx_adtyco_tpl.dll!log4cxx::Hierarchy::`vbase destructor'()
 log4cxx_adtyco_tpl.dll!log4cxx::Hierarchy::`vector deleting destructor'()
 log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectImpl::releaseRef() Line 46
 log4cxx_adtyco_tpl.dll!log4cxx::Hierarchy::releaseRef() Line 80
 
log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggerRepository>::~ObjectPtrT<log4cxx::spi::LoggerRepository>()
Line 102
 
log4cxx_adtyco_tpl.dll!log4cxx::spi::DefaultRepositorySelector::~DefaultRepositorySelector()
 log4cxx_adtyco_tpl.dll!log4cxx::spi::DefaultRepositorySelector::`vbase
destructor'()
 log4cxx_adtyco_tpl.dll!log4cxx::spi::DefaultRepositorySelector::`vector
deleting destructor'()
 log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectImpl::releaseRef() Line 46
 log4cxx_adtyco_tpl.dll!log4cxx::spi::DefaultRepositorySelector::releaseRef()
Line 36
 
log4cxx_adtyco_tpl.dll!log4cxx::helpers::ObjectPtrT<log4cxx::spi::RepositorySelector>::~ObjectPtrT<log4cxx::spi::RepositorySelector>()
Line 102
 
log4cxx_adtyco_tpl.dll!`log4cxx::LogManager::getRepositorySelector'::`2'::`dynamic
atexit destructor for 'selector''()
 log4cxx_adtyco_tpl.dll!_CRT_INIT(hDllHandle, dwReason, lpreserved) Line 416C
 log4cxx_adtyco_tpl.dll!__DllMainCRTStartup(hDllHandle=0x0c4d0000,
dwReason=0, lpreserved=0x00000001) Line 522C
 log4cxx_adtyco_tpl.dll!_DllMainCRTStartup(hDllHandle=0x0c4d0000,
dwReason=0, lpreserved=0x00000001) Line 472C
 ntdll.dll!_LdrxCallInitRoutine@16 ()Unknown
 ntdll.dll!LdrpCallInitRoutine()Unknown
 ntdll.dll!LdrShutdownProcess()Unknown
 ntdll.dll!RtlExitUserProcess()Unknown
 AcLayers.dll!NS_FaultTolerantHeap::FthExitUserProcess ()Unknown
 AcLayers.dll!NS_FaultTolerantHeap::APIHook_RtlExitUserProcess ()Unknown
 kernel32.dll!_ExitProcessImplementation@4 ()Unknown
 mscoreei.dll!RuntimeDesc::ShutdownAllActiveRuntimes ()Unknown
 mscoreei.dll!CLRRuntimeHostInternalImpl::ShutdownAllRuntimesThenExit ()Unknown
 clr.dll!EEPolicy::ExitProcessViaShim ()Unknown
 clr.dll!SafeExitProcess ()Unknown
 clr.dll!HandleExitProcessHelper()Unknown
 clr.dll!EEPolicy::HandleExitProcess ()Unknown
 clr.dll!__CorExeMainInternal@0 ()Unknown
 clr.dll!__CorExeMain@0 ()Unknown
 mscoreei.dll!__CorExeMain@0 ()Unknown
 mscoree.dll!__CorExeMain_Exported@0 ()Unknown
 kernel32.dll!@BaseThreadInitThunk@12 ()Unknown
 ntdll.dll!__RtlUserThreadStart()Unknown
 ntdll.dll!__RtlUserThreadStart@8 ()Unknown

Reply via email to