[Libreoffice-bugs] [Bug 114025] New: deadlock from lock dialog: Singleton vs. SolarMutex in framework

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Fri Nov 24 13:30:09 UTC 2017


https://bugs.documentfoundation.org/show_bug.cgi?id=114025

            Bug ID: 114025
           Summary: deadlock from lock dialog: Singleton vs. SolarMutex in
                    framework
           Product: LibreOffice
           Version: 5.4.2.2 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: LibreOffice
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: michael.meeks at collabora.com

I append an annotated stack trace that describes the issue.

Lets discuss the more general issue somewhere linked from here (if there is
one) - I'd like to get this closed =)

(gdb) thread apply all backtrace

---Type <return> to continue, or q <return> to quit---
Thread 2 (Thread 0x7fc1dd47b700 (LWP 970)):
#0  0x00007fc1ffa0242d in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fc1ff9fdde6 in _L_lock_870 () from /lib64/libpthread.so.0
#2  0x00007fc1ff9fdcdf in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007fc201036680 in osl_acquireMutex (pMutex=<optimized out>)
    at /opt/collaboraoffice5.3/debugsource/sal/osl/unx/mutex.cxx:99
#4  0x00007fc2043a578d in SalYieldMutex::acquire() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#5  0x00007fc202b62e71 in framework::HandlerCache::HandlerCache() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#6  0x00007fc202b9ecfb in
framework::DispatchProvider::DispatchProvider(com::sun::star::uno:---Type
<return> to continue, or q <return> to quit---
:Reference<com::sun::star::uno::XComponentContext> const&,
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) () from
/opt/collaboraoffice5.3/program/libmergedlo.so
#7  0x00007fc202c345dc in framework::Desktop::constructorInit() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#8  0x00007fc202c3635b in
com_sun_star_comp_framework_Desktop_get_implementation ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so

extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_comp_framework_Desktop_get_implementation(
    css::uno::XComponentContext *context,
    css::uno::Sequence<css::uno::Any> const &)
{
    return cppu::acquire(Singleton::get(context).instance.get());
}

#9  0x00007fc1fb04cc0f in
cppuhelper::ServiceManager::Data::Implementation::createInstance
    (this=0x2539e80, context=...,
singletonRequest=singletonRequest at entry=false)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:693
#10 0x00007fc1fb050512 in cppuhelper::ServiceManager::createInstanceWithContext
(
    this=<optimized out>, aServiceSpecifier=..., Context=...)
---Type <return> to continue, or q <return> to quit---
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:1050

#11 0x00007fc1e7bd03cb in x11::SelectionManager::run(void*) ()
   from /opt/collaboraoffice5.3/program/libvclplug_genlo.so
#12 0x00007fc20103cc87 in osl_thread_start_Impl (pData=0x33fb5d0)
    at /opt/collaboraoffice5.3/debugsource/sal/osl/unx/thread.cxx:240
#13 0x00007fc1ff9fbe25 in start_thread () from /lib64/libpthread.so.0
#14 0x00007fc200d3234d in clone () from /lib64/libc.so.6

...

Thread 1 (Thread 0x7fc2062dca40 (LWP 961)):
#0  0x00007fc200d2c7f9 in syscall () from /lib64/libc.so.6
#1  0x00007fc1f965eeab in __cxa_guard_acquire () from /lib64/libstdc++.so.6
---Type <return> to continue, or q <return> to quit---
#2  0x00007fc202c3631c in
com_sun_star_comp_framework_Desktop_get_implementation ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so

framework/source/services/desktop.cxx:

extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_comp_framework_Desktop_get_implementation(
    css::uno::XComponentContext *context,
    css::uno::Sequence<css::uno::Any> const &)
{
    return cppu::acquire(Singleton::get(context).instance.get());
}

#3  0x00007fc1fb04cc0f in
cppuhelper::ServiceManager::Data::Implementation::createInstance
    (this=0x2539e80, context=...,
singletonRequest=singletonRequest at entry=false)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:693
#4  0x00007fc1fb050512 in cppuhelper::ServiceManager::createInstanceWithContext
(
    this=<optimized out>, aServiceSpecifier=..., Context=...)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:1050
#5  0x00007fc202fd1359 in SfxApplication::Initialize_Impl() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#6  0x00007fc202fc8d24 in SfxApplication::GetOrCreate() ()
---Type <return> to continue, or q <return> to quit---
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#7  0x00007fc203254232 in
com_sun_star_comp_sfx2_GlobalEventBroadcaster_get_implementation
    () from /opt/collaboraoffice5.3/program/libmergedlo.so
#8  0x00007fc1fb04cc0f in
cppuhelper::ServiceManager::Data::Implementation::createInstance
    (this=0x2560c40, context=..., singletonRequest=singletonRequest at entry=true)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:693
#9  0x00007fc1fb04dc21 in (anonymous
namespace)::SingletonFactory::createInstanceWithContext (this=0x7fc2061da268,
Context=...)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/servicemanager.cxx:535
#10 0x00007fc1faff63ed in cppu::ComponentContext::lookupMap (
    this=this at entry=0x7fc2061d5848, rName=...)
---Type <return> to continue, or q <return> to quit---
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/component_context.cxx:330
#11 0x00007fc1faff8090 in cppu::ComponentContext::getValueByName
(this=0x7fc2061d5848,
    rName=...)
    at
/opt/collaboraoffice5.3/debugsource/cppuhelper/source/component_context.cxx:409
#12 0x00007fc204050ee9 in Dialog::Execute() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so


+ must be this guy:

    + Holding the SolarMutex at this point.

    css::uno::Reference< css::uno::XComponentContext > xContext(
            comphelper::getProcessComponentContext() );
    css::uno::Reference<css::frame::XGlobalEventBroadcaster>
xEventBroadcaster(css::frame::theGlobalEventBroadcaster::get(xContext),
css::uno::UNO_QUERY_THROW);
    css::document::DocumentEvent aObject;
    aObject.EventName = "DialogExecute";
    xEventBroadcaster->documentEventOccured(aObject);

#13 0x00007fc204071c2a in MessageDialog::Execute() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so


#14 0x00007fc203313ddf in desktop::Lockfile_execWarning(desktop::Lockfile*) ()

desktop/source/app/lockfile2.cxx
        + bool Lockfile_execWarning( Lockfile const * that )
   from /opt/collaboraoffice5.3/program/libmergedlo.so

#15 0x00007fc2028d91f9 in desktop::Lockfile::check(bool
(*)(desktop::Lockfile*)) ()
---Type <return> to continue, or q <return> to quit---
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#16 0x00007fc2032fcfb1 in desktop::Desktop::Main() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#17 0x00007fc2042f6626 in ImplSVMain() ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#18 0x00007fc2042f6712 in SVMain() () from
/opt/collaboraoffice5.3/program/libmergedlo.so
#19 0x00007fc20331e37a in soffice_main ()
   from /opt/collaboraoffice5.3/program/libmergedlo.so
#20 0x000000000040075b in sal_main ()
    at /opt/collaboraoffice5.3/debugsource/desktop/source/app/main.c:48
#21 main (argc=<optimized out>, argv=<optimized out>)
---Type <return> to continue, or q <return> to quit---
    at /opt/collaboraoffice5.3/debugsource/desktop/source/app/main.c:47
(gdb)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20171124/3646673b/attachment-0001.html>


More information about the Libreoffice-bugs mailing list