Apache OpenOffice (AOO) Bugzilla – Issue 114936
UpdateCheck thread still running during exit
Last modified: 2013-01-29 21:44:28 UTC
On OOO330_m9 based unxmacxi.pro seen a crash when terminating OOo (via Option-Q; note that at least on Mac, it appears that OOo terminates not by returning from Desktop::Main, but by calling exit from within Application::Execute). Crashing thread is Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000008 [Switching to process 23295 thread 0x5403] 0x926c3935 in std::_Rb_tree_insert_and_rebalance () (gdb) where #0 0x926c3935 in std::_Rb_tree_insert_and_rebalance () #1 0x16c9c95f in std::_Rb_tree<configmgr::RootAccess*, configmgr::RootAccess*, std::_Identity<configmgr::RootAccess*>, std::less<configmgr::RootAccess*>, std::allocator<configmgr::RootAccess*> >::_M_insert () #2 0x16c9cac4 in std::_Rb_tree<configmgr::RootAccess*, configmgr::RootAccess*, std::_Identity<configmgr::RootAccess*>, std::less<configmgr::RootAccess*>, std::allocator<configmgr::RootAccess*> >::insert_unique () #3 0x16c61fb9 in configmgr::Components::addRootAccess () #4 0x16c68a49 in configmgr::configuration_provider::(anonymous namespace)::Service::createInstanceWithArguments () #5 0x1b898529 in (anonymous namespace)::UpdateInformationProvider::getConfigurationItem () #6 0x1b89948c in (anonymous namespace)::UpdateInformationProvider::UpdateInformationProvider () #7 0x1b89a9de in (anonymous namespace)::UpdateInformationProvider::createInstance () #8 0x1b89ac88 in createInstance () #9 0x0061da08 in cppu::OSingleFactoryHelper::createInstanceEveryTime () #10 0x0061d252 in cppu::OSingleFactoryHelper::createInstanceWithContext () #11 0x0061d575 in cppu::OFactoryComponentHelper::createInstanceWithContext () #12 0x006205ce in cppu::ORegistryFactoryHelper::createInstanceEveryTime () #13 0x0061d252 in cppu::OSingleFactoryHelper::createInstanceWithContext () #14 0x0061d575 in cppu::OFactoryComponentHelper::createInstanceWithContext () #15 0x03cc23c1 in stoc_smgr::OServiceManager::createInstanceWithContext () #16 0x22e162be in com::sun::star::deployment::UpdateInformationProvider::create () #17 0x22db90c0 in dp_info::PackageInformationProvider::PackageInformationProvider () #18 0x22e166c9 in boost::detail::function::function_obj_invoker3<comphelper::service_decl::detail::CreateFunc<comphelper::service_decl::detail::ServiceImpl<dp_info::PackageInformationProvider>, comphelper::service_decl::detail::PostProcessDefault<comphelper::service_decl::detail::ServiceImpl<dp_info::PackageInformationProvider> >, comphelper::service_decl::with_args<false> >, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&>::invoke () #19 0x004a7fb5 in boost::function3<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&>::operator() () #20 0x00443445 in comphelper::service_decl::ServiceDecl::Factory::createInstanceWithContext () #21 0x006205ce in cppu::ORegistryFactoryHelper::createInstanceEveryTime () #22 0x0061d252 in cppu::OSingleFactoryHelper::createInstanceWithContext () #23 0x0061d575 in cppu::OFactoryComponentHelper::createInstanceWithContext () #24 0x03cc23c1 in stoc_smgr::OServiceManager::createInstanceWithContext () #25 0x00626001 in cppu::ComponentContext::lookupMap () #26 0x00626774 in cppu::ComponentContext::getValueByName () #27 0x16e211f5 in checkForPendingUpdates () #28 0x16e19e17 in UpdateCheck::initialize () #29 0x16e1b5bf in (anonymous namespace)::InitUpdateCheckJobThread::run () #30 0x16e3aebe in threadFunc () #31 0x001f5d3d in osl_thread_start_Impl () #32 0x92f96155 in _pthread_start () #33 0x92f96012 in thread_start () while main thread already deletes static configmgr::Components instance (without holding configmgr::lock) from within exit: [Switching to thread 1 (process 23295 local thread 0x9707)] 0x92f6ecc4 in szone_size () (gdb) where #0 0x92f6ecc4 in szone_size () #1 0x92f6b347 in free () #2 0x16c9d520 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #3 0x16c704b3 in configmgr::LocalizedPropertyNode::~LocalizedPropertyNode () #4 0x16c9d520 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #5 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #6 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #7 0x16c70028 in configmgr::GroupNode::~GroupNode () #8 0x16c9d520 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #9 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #10 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #11 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #12 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #13 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #14 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #15 0x16c75c0e in configmgr::SetNode::~SetNode () #16 0x16c9d520 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #17 0x16c70028 in configmgr::GroupNode::~GroupNode () #18 0x16c9d520 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #19 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #20 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #21 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #22 0x16c9d4f6 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> >, std::_Select1st<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > >, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::Reference<configmgr::Node> > > >::_M_erase () #23 0x16c628e5 in configmgr::Components::~Components () #24 0x92f8dd9c in __cxa_finalize () #25 0x92f8dc90 in exit () #26 0x9045132b in -[NSApplication terminate:] () #27 0x90371e8f in -[NSApplication sendAction:to:from:] () #28 0x90420b64 in -[NSMenu performActionForItemAtIndex:] () #29 0x90420869 in -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] () #30 0x904204ef in -[NSMenu performKeyEquivalent:] () #31 0x01d3a6fe in -[VCL_NSApplication sendEvent:] () #32 0x01d37573 in AquaSalInstance::Yield () #33 0x01aac93c in Application::Yield () #34 0x01aaca01 in Application::Execute () #35 0x000d04fa in desktop::Desktop::Main () #36 0x01ab28c3 in ImplSVMain () #37 0x01d36b1c in AquaSalInstance::handleAppDefinedEvent () #38 0x01d3a49e in -[VCL_NSApplication sendEvent:] () #39 0x90298fe7 in -[NSApplication run] () #40 0x902661d8 in NSApplicationMain () #41 0x01d37900 in ImplSVMainHook () #42 0x01ab294f in SVMain () #43 0x000ee00e in soffice_main () #44 0x00001f0e in main ()
Looks like an follow up problem of calling application::Exit