master revision 0d26b10ab6776e741d5744079e5ceb2226ffd1c0 observed following deadlock while running sfx2_complex. thread 4011 wants to paint embedded object while thread 4163 has incoming UNO API call on same embedded object OCommonEmbeddedObject::changeState locks m_aMutex, other one is SolarMutex. does not appear to be easy to fix as i dont know embedded object code. Threads not waiting for a lock: Thread 4019 Thread 4099 Thread 4100 Thread 4160 Thread 4161 Thread 4198 Mutex 0x1d2fa30: * Owned by thread 4011 Thread 4163 Mutex 0x63f24f0: Owned by thread 4163 * Thread 4011 Thread 8 (Thread 0x2ac2601e4700 (LWP 4019)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:218 #1 0x00002ac24f1b2ca2 in rtl_cache_wsupdate_wait (seconds=10) at /sal/rtl/source/alloc_cache.cxx:1397 #2 0x00002ac24f1b2e84 in rtl_cache_wsupdate_all (arg=0xa) at /sal/rtl/source/alloc_cache.cxx:1537 #3 0x0000003365c07d14 in start_thread (arg=0x2ac2601e4700) at pthread_create.c:309 #4 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 7 (Thread 0x2ac26226f700 (LWP 4099)): #0 0x00000033658f237d in accept () at ../sysdeps/unix/syscall-template.S:82 #1 0x00002ac24f199c53 in osl_acceptPipe (pPipe=0x28d6290) at /sal/osl/unx/pipe.c:467 #2 0x00002ac24f486df4 in osl::Pipe::accept (this=0x1e59c48, Connection=...) at /solver/unxlngx6/inc/osl/pipe.hxx:141 #3 0x00002ac24f48463e in desktop::OfficeIPCThread::execute (this=0x1e59c20) at /desktop/source/app/officeipcthread.cxx:649 #4 0x00002ac2505b1a48 in salhelper::Thread::run (this=0x1e59c20) at /salhelper/source/thread.cxx:60 #5 0x00002ac2505b1e1d in osl::threadFunc (param=0x1e59c30) at /solver/unxlngx6/inc/osl/thread.hxx:196 #6 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x28d2b90) at /sal/osl/unx/thread.c:261 #7 0x0000003365c07d14 in start_thread (arg=0x2ac26226f700) at pthread_create.c:309 #8 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 6 (Thread 0x2ac262b27700 (LWP 4100)): #0 0x00000033658f237d in accept () at ../sysdeps/unix/syscall-template.S:82 #1 0x00002ac24f199c53 in osl_acceptPipe (pPipe=0x54536a0) at /sal/osl/unx/pipe.c:467 #2 0x00002ac26248ba44 in osl::Pipe::accept (this=0x2ac262b26a70, Connection=...) at /solver/unxlngx6/inc/osl/pipe.hxx:141 #3 0x00002ac26248b34c in io_acceptor::PipeAcceptor::accept (this=0x28ffa30) at /io/source/acceptor/acc_pipe.cxx:186 #4 0x00002ac2624944db in io_acceptor::OAcceptor::accept (this=0x28e5cb0, sConnectionDescription="pipe,name=oootest595423da-1241-4516-b7c1-c6979d5b2de4") at /io/source/acceptor/acceptor.cxx:246 #5 0x00002ac2622752e2 in desktop::Acceptor::run (this=0x28e4840) at /desktop/source/offacc/acceptor.cxx:111 #6 0x00002ac262274bac in desktop::workerfunc (acc=0x28e4840) at /desktop/source/offacc/acceptor.cxx:41 #7 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x28e6ce0) at /sal/osl/unx/thread.c:261 #8 0x0000003365c07d14 in start_thread (arg=0x2ac262b27700) at pthread_create.c:309 #9 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 5 (Thread 0x2ac264dd3700 (LWP 4160)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166 #1 0x00002ac24f1e5e93 in osl_waitCondition (Condition=0x5458d90, pTimeout=0x0) at /sal/osl/unx/conditn.cxx:297 #2 0x00002ac2626bec10 in osl::Condition::wait (this=0x545c8a8, pTimeout=0x0) at /solver/unxlngx6/inc/osl/conditn.hxx:84 #3 0x00002ac2626f597a in binaryurp::Writer::execute (this=0x545c660) at /binaryurp/source/writer.cxx:146 #4 0x00002ac2505b1a48 in salhelper::Thread::run (this=0x545c660) at /salhelper/source/thread.cxx:60 #5 0x00002ac2505b1e1d in osl::threadFunc (param=0x545c670) at /solver/unxlngx6/inc/osl/thread.hxx:196 #6 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x54593a0) at /sal/osl/unx/thread.c:261 #7 0x0000003365c07d14 in start_thread (arg=0x2ac264dd3700) at pthread_create.c:309 #8 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 4 (Thread 0x2ac264fd4700 (LWP 4161)): #0 0x00000033658f2577 in __libc_recv (fd=20, buf=0x63a64d8, n=8, flags=-1) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:34 #1 0x00002ac24f199e60 in osl_receivePipe (pPipe=0x54546c0, pBuffer=0x63a64d8, BytesToRead=8) at /sal/osl/unx/pipe.c:533 #2 0x00002ac24f19a0b3 in osl_readPipe (pPipe=0x54546c0, pBuffer=0x63a64d8, n=8) at /sal/osl/unx/pipe.c:625 #3 0x00002ac26248bb62 in osl::StreamPipe::read (this=0x54444a0, pBuffer=0x63a64d8, n=8) at /solver/unxlngx6/inc/osl/pipe.hxx:191 #4 0x00002ac26248ad66 in io_acceptor::PipeConnection::read (this=0x5444470, aReadBytes=uno::Sequence of length 8 = {...}, nBytesToRead=8) at /io/source/acceptor/acc_pipe.cxx:98 #5 0x00002ac2626ee8d1 in binaryurp::(anonymous namespace)::read (connection=uno::Reference to { <com::sun::star::uno::XInterface> = { _vptr.XInterface = 0x2ac26269f1b0 }, <No data fields>}, size=8, eofOk=true) at /binaryurp/source/reader.cxx:72 #6 0x00002ac2626eecfb in binaryurp::Reader::execute (this=0x545ae00) at /binaryurp/source/reader.cxx:108 #7 0x00002ac2505b1a48 in salhelper::Thread::run (this=0x545ae00) at /salhelper/source/thread.cxx:60 #8 0x00002ac2505b1e1d in osl::threadFunc (param=0x545ae10) at /solver/unxlngx6/inc/osl/thread.hxx:196 #9 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x545cd50) at /sal/osl/unx/thread.c:261 #10 0x0000003365c07d14 in start_thread (arg=0x2ac264fd4700) at pthread_create.c:309 #11 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 3 (Thread 0x2ac2653de700 (LWP 4163)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 #1 0x0000003365c09c71 in _L_lock_889 () from /lib64/libpthread.so.0 #2 0x0000003365c09b8a in __pthread_mutex_lock (mutex=0x1d2fa30) at pthread_mutex_lock.c:86 #3 0x00002ac24f1984ee in osl_acquireMutex (Mutex=0x1d2fa30) at /sal/osl/unx/mutex.c:123 #4 0x00002ac2532b657e in vcl::SolarMutexObject::acquire (this=0x1d318b0) at /vcl/source/app/solarmutex.cxx:44 #5 0x00002ac2537d93dc in SalYieldMutex::acquire (this=0x1d318b0) at /vcl/generic/app/geninst.cxx:59 #6 0x00002ac257d850d2 in framework::LockHelper::acquire (this=0x6077880) at /framework/source/fwi/threadhelp/lockhelper.cxx:166 #7 0x00002ac262e77d75 in framework::ResetableGuard::lock (this=0x2ac2653dc850) at /framework/inc/threadhelp/resetableguard.hxx:120 #8 0x00002ac262e77d27 in framework::ResetableGuard::ResetableGuard (this=0x2ac2653dc850, rLock=...) at /framework/inc/threadhelp/resetableguard.hxx:79 #9 0x00002ac263039427 in framework::ToolBarWrapper::dispose (this=0x6077840) at /framework/source/uielement/toolbarwrapper.cxx:107 #10 0x00002ac262ee756e in framework::ToolbarLayoutManager::destroyToolbars (this=0x5f770c0) at /framework/source/layoutmanager/toolbarlayoutmanager.cxx:566 #11 0x00002ac262ed2480 in framework::LayoutManager::implts_destroyElements (this=0x59ced70) at /framework/source/layoutmanager/layoutmanager.cxx:465 #12 0x00002ac262ed7056 in framework::LayoutManager::setDockingAreaAcceptor (this=0x59ced70, xDockingAreaAcceptor=empty uno::Reference) at /framework/source/layoutmanager/layoutmanager.cxx:1361 #13 0x00002ac272211ff4 in DocumentHolder::ShowUI (this=0x65457a0, xContainerLM=uno::Reference to { <com::sun::star::uno::XInterface> = { _vptr.XInterface = 0x2ac2633c3d90 }, <No data fields>}, xContainerDP=uno::Reference to { <com::sun::star::uno::XInterface> = { _vptr.XInterface = 0x2ac2633c8170 }, <No data fields>}, aContModuleName="com.sun.star.text.TextDocument") at /embeddedobj/source/general/docholder.cxx:732 #14 0x00002ac2721e6b76 in OCommonEmbeddedObject::SwitchStateTo_Impl (this=0x620b9f0, nNextState=4) at /embeddedobj/source/commonembedding/embedobj.cxx:328 #15 0x00002ac2721e78c0 in OCommonEmbeddedObject::changeState (this=0x620b9f0, nNewState=4) at /embeddedobj/source/commonembedding/embedobj.cxx:471 #16 0x00002ac2721e7ef5 in OCommonEmbeddedObject::doVerb (this=0x620b9f0, nVerbID=-1) at /embeddedobj/source/commonembedding/embedobj.cxx:557 #17 0x00002ac260813c96 in gcc3::callVirtualMethod (pThis=0x620b9f0, nVtableIndex=10, pRegisterReturn=0x0, pReturnTypeRef=0x1d3a460, bSimpleReturn=true, pStack=0x2ac2653dd260, nStack=0, pGPR=0x2ac2653dd2d0, nGPR=2, pFPR=0x2ac2653dd300, nFPR=0) at /bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:128 #18 0x00002ac26081b374 in cpp_call (pThis=0x64b3950, aVtableSlot=..., pReturnTypeRef=0x1d3a460, nParams=1, pParams=0x64559b0, pUnoReturn=0x0, pUnoArgs=0x6453710, ppUnoExc=0x2ac2653dd6b8) at /bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:246 #19 0x00002ac26081bed8 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch (pUnoI=0x64b3950, pMemberDescr=0x6394700, pReturn=0x0, pArgs=0x6453710, ppException=0x2ac2653dd6b8) at /bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:440 #20 0x00002ac2626d4ad1 in binaryurp::IncomingRequest::execute_throw (this=0x6573700, returnValue=0x2ac2653ddb10, outArguments=0x2ac2653dda80) at /binaryurp/source/incomingrequest.cxx:251 #21 0x00002ac2626d39b7 in binaryurp::IncomingRequest::execute (this=0x6573700) at /binaryurp/source/incomingrequest.cxx:80 #22 0x00002ac2626eeaad in binaryurp::(anonymous namespace)::request (pThreadSpecificData=0x6573700) at /binaryurp/source/reader.cxx:89 #23 0x00002ac24fb9814a in cppu_threadpool::JobQueue::enter (this=0x65737a0, nDisposeId=88480448, bReturnWhenNoJob=1 '\001') at /cppu/source/threadpool/jobqueue.cxx:115 #24 0x00002ac24fb9ba35 in cppu_threadpool::ORequestThread::run (this=0x5461ac0) at /cppu/source/threadpool/thread.cxx:179 #25 0x00002ac24fb9c23f in osl::threadFunc (param=0x5461ad0) at /solver/unxlngx6/inc/osl/thread.hxx:196 #26 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x54627b0) at /sal/osl/unx/thread.c:261 #27 0x0000003365c07d14 in start_thread (arg=0x2ac2653de700) at pthread_create.c:309 #28 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 2 (Thread 0x2ac26cfc0700 (LWP 4198)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:166 #1 0x00002ac24f1e5e93 in osl_waitCondition (Condition=0x28ba3d0, pTimeout=0x0) at /sal/osl/unx/conditn.cxx:297 #2 0x00002ac267b82c56 in osl::Condition::wait (this=0x5e06ee0, pTimeout=0x0) at /solver/unxlngx6/inc/osl/conditn.hxx:84 #3 0x00002ac267b7edd7 in GrammarCheckingIterator::DequeueAndCheck (this=0x5e06d20) at /linguistic/source/gciterator.cxx:628 #4 0x00002ac267b7cc7c in workerfunc (gci=0x5e06d20) at /linguistic/source/gciterator.cxx:225 #5 0x00002ac24f1a3283 in osl_thread_start_Impl (pData=0x28b9750) at /sal/osl/unx/thread.c:261 #6 0x0000003365c07d14 in start_thread (arg=0x2ac26cfc0700) at pthread_create.c:309 #7 0x00000033658f167d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 1 (Thread 0x2ac259bb4700 (LWP 4011)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 #1 0x0000003365c09c71 in _L_lock_889 () from /lib64/libpthread.so.0 #2 0x0000003365c09b8a in __pthread_mutex_lock (mutex=0x63f24f0) at pthread_mutex_lock.c:86 #3 0x00002ac24f1984ee in osl_acquireMutex (Mutex=0x63f24f0) at /sal/osl/unx/mutex.c:123 #4 0x00002ac2721e8e8f in osl::Mutex::acquire (this=0x620ba68) at /solver/unxlngx6/inc/osl/mutex.hxx:67 #5 0x00002ac2721eb700 in osl::Guard<osl::Mutex>::Guard (this=0x7fffc1771f10, t=...) at /solver/unxlngx6/inc/osl/mutex.hxx:153 #6 0x00002ac2721ef856 in OCommonEmbeddedObject::getComponent (this=0x620b9f0) at /embeddedobj/source/commonembedding/miscobj.cxx:497 #7 0x00002ac265ea4122 in SwNoTxtFrm::PaintPicture (this=0x630e500, pOut=0x64914a8, rGrfArea=SwRect = {...}) at /sw/source/core/doc/notxtfrm.cxx:1074 #8 0x00002ac265ea119b in SwNoTxtFrm::Paint (this=0x630e500, rRect=SwRect = {...}) at /sw/source/core/doc/notxtfrm.cxx:321 #9 0x00002ac26611a5e9 in SwLayoutFrm::Paint (this=0x6380980, rRect=SwRect = {...}) at /sw/source/core/layout/paintfrm.cxx:3414 #10 0x00002ac26611d0e9 in SwFlyFrm::Paint (this=0x6380980, rRect=SwRect = {...}) at /sw/source/core/layout/paintfrm.cxx:4101 #11 0x00002ac265f9ac68 in SwVirtFlyDrawObj::wrap_DoPaintObject (this=0x64c9290) at /sw/source/core/draw/dflyobj.cxx:533 #12 0x00002ac265f9a0de in drawinglayer::primitive2d::SwVirtFlyDrawObjPrimitive::get2DDecomposition (this=0x637f4a0, rViewInformation=...) at /sw/source/core/draw/dflyobj.cxx:274 #13 0x00002ac254ff5bc4 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D (this=0x5860c50, rCandidate=...) at /drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:584 #14 0x00002ac254fcb0f1 in drawinglayer::processor2d::BaseProcessor2D::process (this=0x5860c50, rSource=uno::Sequence of length 1 = {...}) at /drawinglayer/source/processor2d/baseprocessor2d.cxx:64 #15 0x00002ac2689812a3 in sdr::contact::ObjectContactOfPageView::DoProcessDisplay (this=0x64c9000, rDisplayInfo=...) at /svx/source/sdr/contact/objectcontactofpageview.cxx:259 #16 0x00002ac2689809a4 in sdr::contact::ObjectContactOfPageView::ProcessDisplay (this=0x64c9000, rDisplayInfo=...) at /svx/source/sdr/contact/objectcontactofpageview.cxx:123 #17 0x00002ac2689cd43a in SdrPageWindow::RedrawLayer (this=0x5ea0670, pId=0x7fffc1772f34 "\001*", pRedirector=0x7fffc1773200) at /svx/source/svdraw/sdrpagewindow.cxx:377 #18 0x00002ac268b532c5 in SdrPageView::DrawLayer (this=0x6329ac0, nID=1 '\001', pGivenTarget=0x64914a8, pRedirector=0x7fffc1773200, rRect=Rectangle = {...}) at /svx/source/svdraw/svdpagv.cxx:386 #19 0x00002ac2664f56d8 in SwViewImp::PaintLayer (this=0x621d050, _nLayerID=1 '\001', pPrintData=0x0, aPaintRect=SwRect = {...}, _pPageBackgrdColor=0x7fffc17731e0, _bIsPageRightToLeft=false, pRedirector=0x7fffc1773200) at /sw/source/core/view/vdraw.cxx:153 #20 0x00002ac2661196ea in SwRootFrm::Paint (this=0x6329530, rRect=SwRect = {...}, pPrintData=0x0) at /sw/source/core/layout/paintfrm.cxx:3157 #21 0x00002ac2664ff767 in ViewShell::Paint (this=0x62da420, rRect=Rectangle = {...}) at /sw/source/core/view/viewsh.cxx:1786 #22 0x00002ac265cd1260 in SwCrsrShell::Paint (this=0x62da420, rRect=Rectangle = {...}) at /sw/source/core/crsr/crsrsh.cxx:1172 #23 0x00002ac2667458c7 in SwEditWin::Paint (this=0x59c5f20, rRect=Rectangle = {...}) at /sw/source/ui/docvw/edtwin2.cxx:535 #24 0x00002ac25379dcca in Window::ImplCallPaint (this=0x59c5f20, pRegion=0x0, nPaintFlags=30) at /vcl/source/window/window.cxx:2464 #25 0x00002ac25379de2c in Window::ImplCallPaint (this=0x628c2d0, pRegion=0x0, nPaintFlags=30) at /vcl/source/window/window.cxx:2488 #26 0x00002ac25379de2c in Window::ImplCallPaint (this=0x6120690, pRegion=0x0, nPaintFlags=30) at /vcl/source/window/window.cxx:2488 #27 0x00002ac25379de2c in Window::ImplCallPaint (this=0x5f35460, pRegion=0x0, nPaintFlags=30) at /vcl/source/window/window.cxx:2488 #28 0x00002ac25379de2c in Window::ImplCallPaint (this=0x6424960, pRegion=0x0, nPaintFlags=30) at /vcl/source/window/window.cxx:2488 #29 0x00002ac25379de2c in Window::ImplCallPaint (this=0x6478fa0, pRegion=0x0, nPaintFlags=8) at /vcl/source/window/window.cxx:2488 #30 0x00002ac25379e03a in Window::ImplCallOverlapPaint (this=0x6478fa0) at /vcl/source/window/window.cxx:2524 #31 0x00002ac25379e18f in Window::ImplHandlePaintHdl (this=0x6478fa0) at /vcl/source/window/window.cxx:2551 #32 0x00002ac25379e0a5 in Window::LinkStubImplHandlePaintHdl (pThis=0x6478fa0, pCaller=0x62f2de0) at /vcl/source/window/window.cxx:2538 #33 0x00002ac2532a30b6 in Link::Call (this=0x62f2e00, pCaller=0x62f2de0) at /solver/unxlngx6/inc/tools/link.hxx:123 #34 0x00002ac2532c5ad5 in Timer::Timeout (this=0x62f2de0) at /vcl/source/app/timer.cxx:245 #35 0x00002ac2532c573e in Timer::ImplTimerCallbackProc () at /vcl/source/app/timer.cxx:133 #36 0x00002ac2601f7ba1 in SalTimer::CallCallback (this=0x2929c10) at /vcl/inc/saltimer.hxx:57 #37 0x00002ac2601f6b40 in SvpSalInstance::CheckTimeout (this=0x1d2cb40, bExecuteTimers=true) at /vcl/headless/svpinst.cxx:171 #38 0x00002ac2601f71bc in SvpSalInstance::Yield (this=0x1d2cb40, bWait=true, bHandleAllCurrentEvents=false) at /vcl/headless/svpinst.cxx:282 #39 0x00002ac2532bb2c4 in ImplYield (i_bWait=true, i_bAllEvents=false) at /vcl/source/app/svapp.cxx:425 #40 0x00002ac2532b76e3 in Application::Yield (i_bAllEvents=false) at /vcl/source/app/svapp.cxx:459 #41 0x00002ac2532b7684 in Application::Execute () at /vcl/source/app/svapp.cxx:404 #42 0x00002ac24f449490 in desktop::Desktop::Main (this=0x7fffc1774450) at /desktop/source/app/app.cxx:1713 #43 0x00002ac2532c28e7 in ImplSVMain () at /vcl/source/app/svmain.cxx:162 #44 0x00002ac2532c2a14 in SVMain () at /vcl/source/app/svmain.cxx:199 #45 0x00002ac24f488b97 in soffice_main () at /desktop/source/app/sofficemain.cxx:83 #46 0x0000000000400948 in sal_main () at /desktop/source/app/main.c:48 #47 0x0000000000400929 in main (argc=9, argv=0x7fffc1774638) at /desktop/source/app/main.c:47
oh noes, reproducible here and regression from commit 44cfc7cb6533d827fd2d6e586d92c61d7d7f7a70 Author: Michael Meeks <michael.meeks@suse.com> Date: Tue Oct 9 12:22:23 2012 +0100 re-base on ALv2 code. Includes (at least) relevant parts of: well i guess it's "good" for the AOO project that running the unit tests is against some weird policy then...
Thanks - I couldn't reproduce this running the tests with no parallelism (and when I'd cleaned up stale locks) - so assumed it was some pre-existing bug we're just triggering - but it's not - shame :-) Will have a deeper dig; thanks for the trace ! :-)
The deadlock is apparently happening in the call to pOLENd->GetOLEObj().GetOleRef()->getComponent() in SwNoTxtFrm::PaintPicture (sw/source/core/doc/notxtfrm.cxx). Comparing execution of sfx2_complex before and after 44cfc7cb6533d827fd2d6e586d92c61d7d7f7a70, in the "before" case that call is never reached because the condition else if( bIsChart // Charts must be painted resolution dependent!! #i82893#, #i75867# && ChartPrettyPainter::ShouldPrettyPaintChartOnThisDevice( pOut ) && svt::EmbeddedObjectRef::TryRunningState( pOLENd->GetOLEObj().GetOleRef() ) && ChartPrettyPainter::DoPrettyPaintChart( uno::Reference< frame::XModel >( pOLENd->GetOLEObj().GetOleRef()->getComponent(), uno::UNO_QUERY), pOut, aAlignedGrfArea.SVRect() ) ) is never executed past the call to ChartPrettyPainter::ShouldPrettyPaintChartOnThisDevice (i.e., that always returns false). In the "after" case, this code has been completely redesigned, and esp. no call to ChartPrettyPainter::ShouldPrettyPaintChartOnThisDevice remains.
Stephan Bergmann committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=74670bf04e0dc693de6ea060d0dd2c10ee3b184d fdo#56818 Work around deadlock caused by differing lock orders The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Wow - thanks so much Stephan - I'd just worked through my TODO to this item, and - it's already fixed :-) very good of you.
Sadly this does not completely fix the problem as there is a call to SolarMutexReleaser in the call chain. #6 0x00002b24fe142a85 in SolarMutexGuard::SolarMutexGuard (this=0x2b2516b0dfa0) at /home/moggi/devel/libo9/include/vcl/svapp.hxx:1461 #7 0x00002b24fe3ad65d in TransferableHelper::lostOwnership (this=0x46708c0) at /home/moggi/devel/libo9/svtools/source/misc/transfer.cxx:436 #8 0x00002b250045d46f in vcl::GenericClipboard::setContents (this=0x3cba890, xTrans=uno::Reference to (ScSelectionTransferObj *) 0x39b72f8, xClipboardOwner=uno::Reference to (ScSelectionTransferObj *) 0x39b7300) at /home/moggi/devel/libo9/vcl/source/components/dtranscomp.cxx:171 #9 0x00002b24fe3afa48 in TransferableHelper::CopyToSelection (this=0x39b72d0, pWindow=0x37fb000) at /home/moggi/devel/libo9/svtools/source/misc/transfer.cxx:960 #10 0x00002b25184fdd2a in ScTabView::CheckSelectionTransfer (this=0x37f43b0) at /home/moggi/devel/libo9/sc/source/ui/view/tabview3.cxx:367 #11 0x00002b25184fd030 in ScTabView::UpdateAutoFillMark (this=0x37f43b0) at /home/moggi/devel/libo9/sc/source/ui/view/tabview3.cxx:146 #12 0x00002b251840119d in ScColBar::SetMarking (this=0x37fc4a0, bSet=false) at /home/moggi/devel/libo9/sc/source/ui/view/colrowba.cxx:153 #13 0x00002b251846ce63 in ScHeaderControl::StopMarking (this=0x37fc4a0) at /home/moggi/devel/libo9/sc/source/ui/view/hdrcont.cxx:928 #14 0x00002b25184fc5a0 in ScTabView::StopMarking (this=0x37f43b0) at /home/moggi/devel/libo9/sc/source/ui/view/tabview2.cxx:1378 #15 0x00002b2518516d1f in ScTabViewShell::Move (this=0x37f4340) at /home/moggi/devel/libo9/sc/source/ui/view/tabvwsh4.cxx:453 #16 0x00002b251851bd05 in ScTabViewShell::ForceMove (this=0x37f4340) at /home/moggi/devel/libo9/sc/source/ui/inc/tabvwsh.hxx:355 #17 0x00002b2518516893 in ScTabViewShell::OuterResizePixel (this=0x37f4340, rOfs=Point = {...}, rSize=Size = {...}) at /home/moggi/devel/libo9/sc/source/ui/view/tabvwsh4.cxx:387 #18 0x00002b24fc1fe223 in SfxViewFrame::DoAdjustPosSizePixel (this=0x37e88a0, pSh=0x37f4340, rPos=Point = {...}, rSize=Size = {...}) at /home/moggi/devel/libo9/sfx2/source/view/viewfrm.cxx:1573 #19 0x00002b24fc2019c2 in SfxViewFrame::Resize (this=0x37e88a0, bForce=false) at /home/moggi/devel/libo9/sfx2/source/view/viewfrm.cxx:2432 #20 0x00002b24fc209d1f in SfxFrameViewWindow_Impl::Resize (this=0x37f0410) at /home/moggi/devel/libo9/sfx2/source/view/viewfrm2.cxx:74 #21 0x00002b24fff66276 in vcl::Window::ImplCallResize (this=0x37f0410) at /home/moggi/devel/libo9/vcl/source/window/event.cxx:521 #22 0x00002b2500066f0c in vcl::Window::ImplPosSizeWindow (this=0x37f0410, nX=0, nY=24, nWidth=753, nHeight=509, nFlags=PosSizeFlags::PosSize) at /home/moggi/devel/libo9/vcl/source/window/window.cxx:1635 #23 0x00002b250006c364 in vcl::Window::setPosSizePixel (this=0x37f0410, nX=0, nY=24, nWidth=753, nHeight=509, nFlags=PosSizeFlags::PosSize) at /home/moggi/devel/libo9/vcl/source/window/window.cxx:2855 #24 0x00002b25000571ed in vcl::Window::SetPosSizePixel (this=0x37f0410, rNewPos=Point = {...}, rNewSize=Size = {...}) at /home/moggi/devel/libo9/vcl/source/window/window2.cxx:1336 #25 0x00002b24fc1d77d6 in SfxFrame::SetToolSpaceBorderPixel_Impl (this=0x37d91b0, rBorder=...) at /home/moggi/devel/libo9/sfx2/source/view/frame.cxx:774 #26 0x00002b24fbe193e2 in SfxFrameWorkWin_Impl::ArrangeChildren_Impl (this=0x37f0a80, bForce=true) at /home/moggi/devel/libo9/sfx2/source/appl/workwin.cxx:729 #27 0x00002b24fbe18d3e in SfxWorkWindow::Lock_Impl (this=0x37f0a80, bLock=false) at /home/moggi/devel/libo9/sfx2/source/appl/workwin.cxx:595 #28 0x00002b24fbe17abb in LayoutManagerListener::layoutEvent (this=0x37e06e0, eLayoutEvent=1) at /home/moggi/devel/libo9/sfx2/source/appl/workwin.cxx:315 #29 0x00002b2513f97894 in framework::LayoutManager::implts_notifyListeners (this=0x334a620, nEvent=1, rInfoParam=uno::Any("long": 0)) at /home/moggi/devel/libo9/framework/source/layoutmanager/layoutmanager.cxx:2658 #30 0x00002b2513f95c3b in framework::LayoutManager::unlock (this=0x334a620) at /home/moggi/devel/libo9/framework/source/layoutmanager/layoutmanager.cxx:2284 #31 0x00002b25201efa9a in OCommonEmbeddedObject::SwitchStateTo_Impl (this=0x4147430, nNextState=4) at /home/moggi/devel/libo9/embeddedobj/source/commonembedding/embedobj.cxx:328 #32 0x00002b25201f073d in OCommonEmbeddedObject::changeState (this=0x4147430, nNewState=4) at /home/moggi/devel/libo9/embeddedobj/source/commonembedding/embedobj.cxx:467 #33 0x00002b25201f0d2f in OCommonEmbeddedObject::doVerb (this=0x4147430, nVerbID=0) at /home/moggi/devel/libo9/embeddedobj/source/commonembedding/embedobj.cxx:561 with frame 9 containing the call to SolarMutexReleaser. I fear I will need to look into this and look for a proper fix.
Markus Mohrhard committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=54f83fee8451928b7078c0f9c96ec4187309bc00 tdf#56818, use SolarMutex instead of own Mutex It will be available in 5.3.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Markus Mohrhard committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=ed7e74ae1c7ecfc29df152a8397fb9f6e1763a60 try to avoid the deadlock around the clipboard, tdf#56818 It will be available in 5.3.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.