Bug 49908

Summary: filter::config::LateInitThread: intermittent crash on exit ...
Product: LibreOffice Reporter: Michael Meeks <michael.meeks>
Component: LibreofficeAssignee: Not Assigned <libreoffice-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: jmadero.dev, sbergman
Version: 3.5.3 release   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Michael Meeks 2012-05-14 06:43:47 UTC
I guess this is thread related, and rather unusual, since I can only reproduce it under valgrind, and only when the machine is under load under valgrind ;-)

==27877== Process terminating with default action of signal 11 (SIGSEGV)
==27877==  Bad permissions for mapped region at address 0x0
==27877==    at 0x0: ???
==27877==    by 0x7F1085D: configmgr::Data::resolvePathRepresentation(rtl::OUString const&, rtl::OUString*, std::vector<rtl::OUString, std::allocator<rtl::OUString> >*, int*) const (data.cxx:281)
==27877==    by 0x7F05DF7: configmgr::Components::resolvePathRepresentation(rtl::OUString const&, rtl::OUString*, std::vector<rtl::OUString, std::allocator<rtl::OUString> >*, int*) const (components.cxx:244)
==27877==    by 0x7F14000: configmgr::RootAccess::getNode() (rootaccess.cxx:156)
==27877==    by 0x7EF3863: configmgr::Access::isValue() (access.cxx:127)
==27877==    by 0x7F0BBD3: configmgr::configuration_provider::(anonymous namespace)::Service::createInstanceWithArguments(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (configurationprovider.cxx:283)
==27877==    by 0xBCF7795: filter::config::FilterCache::impl_createConfigAccess(rtl::OUString const&, unsigned char, unsigned char) (filtercache.cxx:986)
==27877==    by 0xBCF7C8F: filter::config::FilterCache::impl_getDirectCFGValue(rtl::OUString const&) (filtercache.cxx:921)
==27877==    by 0xBCFC429: filter::config::FilterCache::load(filter::config::FilterCache::EFillState, unsigned char) (filtercache.cxx:234)
==27877==    by 0xBD03468: filter::config::LateInitThread::run() (lateinitthread.cxx:72)
==27877==    by 0xBD03113: threadFunc (thread.hxx:190)
==27877==    by 0x40354C4: osl_thread_start_Impl (thread.c:277)
Comment 1 Stephan Bergmann 2012-05-14 07:02:43 UTC
The main thread is probably already in exit(3) when the filter::config::LateInitThread is only starting to run in your high-load scenarios.  This is a known problem of that LateInitThread, see "TODO: a protocol is missing how to join with the launched thread before exit(3), to ensure the thread is no longer relying on any infrastructure while that infrastructure is being shut down in atexit handlers" at <http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/config/cache/lateinitlistener.cxx?id=8b960f0ec4ac13a98d8b1c33cf23ef82cc5b6841#n114>.
Comment 2 Joel Madero 2013-07-25 16:34:29 UTC
@Michael - should this still be open? If so can we set it to NEW?
Comment 3 Michael Meeks 2013-07-25 17:22:23 UTC
I guess so - Stephan confirmed it as a known issue :-)
Comment 4 Caolán McNamara 2014-09-28 15:22:07 UTC
LateInitThread has been removed, so this exact problem cannot happen anymore

http://cgit.freedesktop.org/libreoffice/core/commit/?id=f7fac105102c6df21242dc30ee7174aee6507bb3

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.