https://bugs.freedesktop.org/show_bug.cgi?id=46678
Bug #: 46678 Summary: deadlock involving cppu JobQueues and/or SolarMutex Classification: Unclassified Product: LibreOffice Version: LibO Master Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Libreoffice AssignedTo: libreoffice-bugs@lists.freedesktop.org ReportedBy: mst...@redhat.com CC: sberg...@redhat.com running soffice --valgrind and connecting remotely via pyuno, i get this deadlock. thread 1 has the SolarMutex and calls listeners, but i think the SolarMutex probably can't be dropped here. weird things are going on with JobQueues that i don't understand; the instances on the stack in thread 1 and 7 look totally unrelated. what exactly is thread 1 waiting for? Thread 7 (Thread 16998): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 #1 0x0000003c26609fb2 in _L_lock_910 () from /lib64/libpthread.so.0 #2 0x0000003c26609e4b in __pthread_mutex_lock (mutex=0x16d6c250) at pthread_mutex_lock.c:86 #3 0x0000000004c2460c in osl_acquireMutex (Mutex=0x16d6c250) at sal/osl/unx/mutex.c:130 #4 0x0000000009035e20 in vcl::SolarMutexObject::acquire (this=0x16d6c1f0) at vcl/source/app/solarmutex.cxx:44 #5 0x00000000094e63fc in SalYieldMutex::acquire (this=0x16d6c1f0) at vcl/generic/app/geninst.cxx:59 #6 0x00000000064c68e2 in SolarMutexGuard::SolarMutexGuard (this=0x1fe7ef10) at solver/unxlngx6/inc/vcl/svapp.hxx:433 #7 0x000000000678c5fd in SfxBaseModel::getSomething (this=0x1976c860, aIdentifier=uno::Sequence of length 16 = {...}) at sfx2/source/doc/sfxbasemodel.cxx:3109 #8 0x0000000022910414 in SwXTextDocument::getSomething (this=0x1976c730, rId=uno::Sequence of length 16 = {...}) at sw/source/ui/uno/unotxdoc.cxx:261 #9 0x00000000157dc7f5 in callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, unsigned int, double*, unsigned int) () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #10 0x00000000157dd335 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #11 0x00000000157dde1a in bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #12 0x000000001b23fdee in binaryurp::IncomingRequest::execute_throw (this=0x1dc0d3d0, returnValue=0x1fe7f980, outArguments=0x1fe7f8f0) at binaryurp/source/incomingrequest.cxx:263 #13 0x000000001b23ed43 in binaryurp::IncomingRequest::execute (this=0x1dc0d3d0) at binaryurp/source/incomingrequest.cxx:89 #14 0x000000001b2599e8 in binaryurp::(anonymous namespace)::request (pThreadSpecificData=0x1dc0d3d0) at binaryurp/source/reader.cxx:107 #15 0x00000000056c0a26 in cppu_threadpool::JobQueue::enter (this=0x1dc00e90, nDisposeId=471903440, bReturnWhenNoJob=1 '\001') at cppu/source/threadpool/jobqueue.cxx:124 #16 0x00000000056c4018 in cppu_threadpool::ORequestThread::run (this=0x1c20acd0) at cppu/source/threadpool/thread.cxx:222 #17 0x00000000056c37b8 in cppu_requestThreadWorker (pVoid=0x1c20acd0) at cppu/source/threadpool/thread.cxx:57 #18 0x0000000004c2f45b in osl_thread_start_Impl (pData=0x1dadc290) at sal/osl/unx/thread.c:303 #19 0x0000003c26607d90 in start_thread (arg=0x1fe80700) at pthread_create.c:309 #20 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 6 (Thread 16985): #0 0x0000003c262f031c in __libc_recv (fd=<optimized out>, buf=<optimized out>, n=<optimized out>, flags=<optimized out>) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:34 #1 0x0000000004c25f95 in osl_receivePipe (pPipe=0xe0d6d60, pBuffer=0x1c28ae58, BytesToRead=8) at sal/osl/unx/pipe.c:533 #2 0x0000000004c261d3 in osl_readPipe (pPipe=0xe0d6d60, pBuffer=0x1c28ae58, n=8) at sal/osl/unx/pipe.c:625 #3 0x000000001abba0c0 in osl::StreamPipe::read(void*, int) const () from solver/unxlngx6/installation/opt/ure/lib/acceptor.uno.so #4 0x000000001abb94e8 in io_acceptor::PipeConnection::read(com::sun::star::uno::Sequence<signed char>&, int) () from solver/unxlngx6/installation/opt/ure/lib/acceptor.uno.so #5 0x000000001b259807 in binaryurp::(anonymous namespace)::read (connection=..., size=8, eofOk=true) at binaryurp/source/reader.cxx:88 #6 0x000000001b259c35 in binaryurp::Reader::execute (this=0xe1238e0) at binaryurp/source/reader.cxx:126 #7 0x00000000060909d8 in salhelper::Thread::run (this=0xe1238e0) at salhelper/source/thread.cxx:60 #8 0x0000000006091039 in osl::threadFunc (param=0xe1238f0) at solver/unxlngx6/inc/osl/thread.hxx:197 #9 0x0000000004c2f45b in osl_thread_start_Impl (pData=0x16b1a640) at sal/osl/unx/thread.c:303 #10 0x0000003c26607d90 in start_thread (arg=0x1ee7e700) at pthread_create.c:309 #11 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 5 (Thread 16980): #0 0x0000003c262f012d in accept () at ../sysdeps/unix/syscall-template.S:82 #1 0x0000000004c25d96 in osl_acceptPipe (pPipe=0xe0d5d10) at sal/osl/unx/pipe.c:467 #2 0x000000001abb9fa4 in osl::Pipe::accept(osl::StreamPipe&) () from solver/unxlngx6/installation/opt/ure/lib/acceptor.uno.so #3 0x000000001abb9a75 in io_acceptor::PipeAcceptor::accept() () from solver/unxlngx6/installation/opt/ure/lib/acceptor.uno.so #4 0x000000001abb6225 in io_acceptor::OAcceptor::accept(rtl::OUString const&) () from solver/unxlngx6/installation/opt/ure/lib/acceptor.uno.so #5 0x000000001a99d2b1 in desktop::Acceptor::run (this=0x19653de0) at desktop/source/offacc/acceptor.cxx:126 #6 0x000000001a99c978 in desktop::workerfunc (acc=0x19653de0) at desktop/source/offacc/acceptor.cxx:44 #7 0x0000000004c2f45b in osl_thread_start_Impl (pData=0x1aec29e0) at sal/osl/unx/thread.c:303 #8 0x0000003c26607d90 in start_thread (arg=0x1bc92700) at pthread_create.c:309 #9 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 4 (Thread 16975): #0 0x0000003c262f012d in accept () at ../sysdeps/unix/syscall-template.S:82 #1 0x0000000004c25d96 in osl_acceptPipe (pPipe=0x19411700) at sal/osl/unx/pipe.c:467 #2 0x0000000004f3d114 in osl::Pipe::accept (this=0x19410058, Connection=...) at solver/unxlngx6/inc/osl/pipe.hxx:141 #3 0x0000000004f3af6a in desktop::OfficeIPCThread::execute (this=0x19410030) at desktop/source/app/officeipcthread.cxx:654 #4 0x00000000060909d8 in salhelper::Thread::run (this=0x19410030) at salhelper/source/thread.cxx:60 #5 0x0000000006091039 in osl::threadFunc (param=0x19410040) at solver/unxlngx6/inc/osl/thread.hxx:197 #6 0x0000000004c2f45b in osl_thread_start_Impl (pData=0x19412a20) at sal/osl/unx/thread.c:303 #7 0x0000003c26607d90 in start_thread (arg=0x1a994700) at pthread_create.c:309 #8 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 3 (Thread 16984): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 #1 0x0000000004c761b7 in osl_waitCondition (Condition=0xe1231b0, pTimeout=0x0) at sal/osl/unx/conditn.cxx:297 #2 0x000000001b226e6a in osl::Condition::wait (this=0xe123048, pTimeout=0x0) at solver/unxlngx6/inc/osl/conditn.hxx:84 #3 0x000000001b26060c in binaryurp::Writer::execute (this=0xe122e00) at binaryurp/source/writer.cxx:155 #4 0x00000000060909d8 in salhelper::Thread::run (this=0xe122e00) at salhelper/source/thread.cxx:60 #5 0x0000000006091039 in osl::threadFunc (param=0xe122e10) at solver/unxlngx6/inc/osl/thread.hxx:197 #6 0x0000000004c2f45b in osl_thread_start_Impl (pData=0xe123820) at sal/osl/unx/thread.c:303 #7 0x0000003c26607d90 in start_thread (arg=0x1a193700) at pthread_create.c:309 #8 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 2 (Thread 16973): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216 #1 0x0000000004c448d9 in rtl_cache_wsupdate_wait (seconds=10) at sal/rtl/source/alloc_cache.cxx:1411 #2 0x0000000004c44ab0 in rtl_cache_wsupdate_all (arg=0xa) at sal/rtl/source/alloc_cache.cxx:1551 #3 0x0000003c26607d90 in start_thread (arg=0x14de1700) at pthread_create.c:309 #4 0x0000003c262ef48d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 1 (Thread 16972): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 #1 0x0000000004c761b7 in osl_waitCondition (Condition=0x2807c0b0, pTimeout=0x0) at sal/osl/unx/conditn.cxx:297 #2 0x00000000056c0872 in cppu_threadpool::JobQueue::enter (this=0x2807bca0, nDisposeId=380740848, bReturnWhenNoJob=0 '\000') at cppu/source/threadpool/jobqueue.cxx:90 #3 0x00000000056c83ea in cppu_threadpool::ThreadPool::enter (this=0xe1229c0, aThreadId=..., nDisposeId=380740848) at cppu/source/threadpool/threadpool.cxx:371 #4 0x00000000056c86f2 in uno_threadpool_enter (hPool=0x16b1a4f0, ppJob=0x7feffdcb8) at cppu/source/threadpool/threadpool.cxx:450 #5 0x000000001b22127e in binaryurp::Bridge::makeCall (this=0x16b14d40, oid="a48330;uno[0];4229;83389284dde54ef187a51fb1b14b426", member=..., setter=false, inArguments=std::__debug::vector of length 1, capacity 1 = {...}, returnValue=0x7feffdeb0, outArguments=0x7feffde10) at binaryurp/source/bridge.cxx:579 #6 0x000000001b258e44 in binaryurp::Proxy::do_dispatch_throw (this=0x16bcb890, member=0x16bd20d0, returnValue=0x7feffe470, arguments=0x7feffe1b0, exception=0x7feffe238) at binaryurp/source/proxy.cxx:192 #7 0x000000001b2587cf in binaryurp::Proxy::do_dispatch (this=0x16bcb890, member=0x16bd20d0, returnValue=0x7feffe470, arguments=0x7feffe1b0, exception=0x7feffe238) at binaryurp/source/proxy.cxx:118 #8 0x000000001b258555 in binaryurp::(anonymous namespace)::proxy_dispatchInterface (pUnoI=0x16bcb890, pMemberType=0x16bd20d0, pReturn=0x7feffe470, pArgs=0x7feffe1b0, ppException=0x7feffe238) at binaryurp/source/proxy.cxx:71 #9 0x00000000157db68d in cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy*, _typelib_TypeDescription const*, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void**, void**, void**, unsigned long*) () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #10 0x00000000157dbffb in cpp_vtable_call () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #11 0x00000000157de10a in privateSnippetExecutor () from solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so #12 0x00000000067b0dfc in cppu::OInterfaceContainerHelper::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator() (this=0x7feffe5b0, listener=...) at solver/unxlngx6/inc/cppuhelper/interfacecontainer.h:272 #13 0x00000000067afec3 in cppu::OInterfaceContainerHelper::forEach<com::sun::star::document::XDocumentEventListener, cppu::OInterfaceContainerHelper::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> > (this=0x1dbf9a48, func=...) at solver/unxlngx6/inc/cppuhelper/interfacecontainer.h:289 #14 0x00000000067af15a in cppu::OInterfaceContainerHelper::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> (this=0x1dbf9a48, NotificationMethod=&virtual table offset 32, Event=...) at solver/unxlngx6/inc/cppuhelper/interfacecontainer.h:303 #15 0x00000000067ad8d2 in SfxGlobalEvents_Impl::implts_notifyListener (this=0x1dbf99b0, aEvent=...) at sfx2/source/notify/eventsupplier.cxx:848 #16 0x00000000067ac733 in SfxGlobalEvents_Impl::documentEventOccured (this=0x1dbf99b0, _Event=...) at sfx2/source/notify/eventsupplier.cxx:654 #17 0x0000000006793f60 in (anonymous namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator() (this=0x7feffe7d0, listener=...) at sfx2/source/doc/sfxbasemodel.cxx:2937 #18 0x0000000006793cd9 in cppu::OInterfaceContainerHelper::forEach<com::sun::star::document::XDocumentEventListener, {anonymous}::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(const (anonymous namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> &) (this=0x1792c640, func=...) at solver/unxlngx6/inc/cppuhelper/interfacecontainer.h:289 #19 0x000000000678bb1c in SfxBaseModel::postEvent_Impl (this=0x1976c860, aName="OnPageCountChange", xController=...) at sfx2/source/doc/sfxbasemodel.cxx:2973 #20 0x00000000067894b8 in SfxBaseModel::Notify (this=0x1976c860, rBC=..., rHint=...) at sfx2/source/doc/sfxbasemodel.cxx:2601 #21 0x0000000006d6259b in SfxBroadcaster::Broadcast (this=0x18e04030, rHint=...) at svl/source/notify/brdcst.cxx:64 #22 0x00000000064ba635 in SfxEventAsyncer_Impl::TimerHdl (this=0x1d2b51f0, pAsyncTimer=0x1d2b7830) at sfx2/source/appl/appcfg.cxx:155 #23 0x00000000064ba4db in SfxEventAsyncer_Impl::LinkStubTimerHdl (pThis=0x1d2b51f0, pCaller=0x1d2b7830) at sfx2/source/appl/appcfg.cxx:140 #24 0x0000000009023272 in Link::Call (this=0x1d2b7850, pCaller=0x1d2b7830) at solver/unxlngx6/inc/tools/link.hxx:140 #25 0x00000000090456fd in Timer::Timeout (this=0x1d2b7830) at vcl/source/app/timer.cxx:255 #26 0x0000000009045366 in Timer::ImplTimerCallbackProc () at vcl/source/app/timer.cxx:143 #27 0x0000000016fd2877 in SalTimer::CallCallback (this=0x1dc9f7f0) at vcl/inc/saltimer.hxx:66 #28 0x0000000016fd1c98 in SvpSalInstance::CheckTimeout (this=0x16d6c2c0, bExecuteTimers=true) at vcl/headless/svpinst.cxx:176 #29 0x0000000016fd22c0 in SvpSalInstance::Yield (this=0x16d6c2c0, bWait=true, bHandleAllCurrentEvents=false) at vcl/headless/svpinst.cxx:287 #30 0x000000000903a947 in ImplYield (i_bWait=true, i_bAllEvents=false) at vcl/source/app/svapp.cxx:451 #31 0x0000000009036f39 in Application::Yield (i_bAllEvents=false) at vcl/source/app/svapp.cxx:485 #32 0x0000000009036eda in Application::Execute () at vcl/source/app/svapp.cxx:430 #33 0x0000000004f049bd in desktop::Desktop::Main (this=0x7fefff400) at desktop/source/app/app.cxx:1811 #34 0x0000000009043052 in ImplSVMain () at vcl/source/app/svmain.cxx:178 #35 0x0000000009043198 in SVMain () at vcl/source/app/svmain.cxx:215 #36 0x0000000004f3f3f6 in soffice_main () at desktop/source/app/sofficemain.cxx:75 #37 0x0000000000400734 in sal_main () at desktop/source/app/main.c:34 #38 0x0000000000400719 in main (argc=10, argv=0x7fefff5b8) at desktop/source/app/main.c:33 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs