On Windows, with master as of last night, "make check" happened to run
into a deadlock in soffice.bin as below. The main thread is trying to
re-acquire the SolarMutex (after a SolarMutexReleaser) from within the
event loop, while an incoming URP thread (apparently holding the
SolarMutex) does vcl::Window::dispose which, on Windows, blocks on
sending a message into the event loop.
Where's the bug?
sal3.dll!osl_acquireMutex(_oslMutexImpl * Mutex) Line 72
vcllo.dll!osl::Mutex::acquire() Line 56
vcllo.dll!SalYieldMutex::acquire() Line 140
vcllo.dll!ImplSalAcquireYieldMutex(unsigned long nCount) Line 299
vcllo.dll!WinSalInstance::AcquireYieldMutex(unsigned long nCount) Line 586
vcllo.dll!Application::AcquireSolarMutex(unsigned long nCount) Line 417
tklo.dll!SolarMutexReleaser::~SolarMutexReleaser() Line 1690
tklo.dll!VCLXWindowImpl::OnProcessCallbacks(void * __formal) Line 306
tklo.dll!VCLXWindowImpl::LinkStubOnProcessCallbacks(void * instance, void * data) Line 274
vcllo.dll!Link<void *,long>::Call(void * data) Line 127
vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 2026
vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalFrame * __formal, unsigned short nEvent,
const void * pEvent) Line 2578
vcllo.dll!SalFrame::CallCallback(unsigned short nEvent, const void * pEvent) Line 244
vcllo.dll!ImplHandleUserEvent(HWND__ * hWnd, long lParam) Line 4128
vcllo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam, int &
rDef) Line 5784
vcllo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line
5943
user32.dll!...
vcllo.dll!ImplSalDispatchMessage(tagMSG * pMsg) Line 597
vcllo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 613
vcllo.dll!WinSalInstance::Yield(bool bWait, bool bHandleAllCurrentEvents) Line 669
vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 354
vcllo.dll!Application::Yield() Line 382
vcllo.dll!Application::Execute() Line 336
sofficeapp.dll!desktop::Desktop::Main() Line 1607
vcllo.dll!ImplSVMain() Line 162
vcllo.dll!SVMain() Line 197
sofficeapp.dll!soffice_main() Line 96
soffice.bin!sal_main() Line 48
soffice.bin!main(int argc, char * * argv) Line 47
soffice.bin!WinMain(void * _hinst, void * _dummy, char * _cmdline, int _nshow) Line 47
soffice.bin!__tmainCRTStartup() Line 618
soffice.bin!WinMainCRTStartup() Line 466
vcllo.dll!WinSalInstance::DestroyFrame(SalFrame * pFrame) Line 922
vcllo.dll!vcl::Window::dispose() Line 563
vcllo.dll!ImplBorderWindow::dispose() Line 1850
vcllo.dll!OutputDevice::disposeOnce() Line 204
vcllo.dll!VclPtr<vcl::Window>::disposeAndClear() Line 209
vcllo.dll!vcl::Window::dispose() Line 548
vcllo.dll!SystemWindow::dispose() Line 124
vcllo.dll!FloatingWindow::dispose() Line 235
vcllo.dll!ImplListBoxFloatingWindow::dispose() Line 2968
vcllo.dll!OutputDevice::disposeOnce() Line 204
vcllo.dll!VclPtr<ImplListBoxFloatingWindow>::disposeAndClear() Line 209
vcllo.dll!ComboBox::dispose() Line 83
svxcorelo.dll!SvxStyleBox_Impl::dispose() Line 354
vcllo.dll!OutputDevice::disposeOnce() Line 204
sfxlo.dll!VclPtr<vcl::Window>::disposeAndClear() Line 209
sfxlo.dll!SfxToolBoxControl::dispose() Line 286
svxcorelo.dll!SvxStyleToolBoxControl::dispose() Line 2155
fwklo.dll!framework::ToolBarManager::RemoveControllers() Line 759
fwklo.dll!framework::ToolBarManager::dispose() Line 567
fwklo.dll!framework::ToolBarWrapper::dispose() Line 106
fwklo.dll!framework::ToolbarLayoutManager::destroyToolbars() Line 655
fwklo.dll!framework::ToolbarLayoutManager::reset() Line 365
fwklo.dll!framework::LayoutManager::implts_reset(bool bAttached) Line 410
fwklo.dll!framework::LayoutManager::frameAction(const com::sun::star::frame::FrameActionEvent &
aEvent) Line 2800
fwklo.dll!`anonymous namespace'::Frame::implts_sendFrameActionEvent(const
com::sun::star::frame::FrameAction & aAction) Line 2856
fwklo.dll!`anonymous namespace'::Frame::setComponent(const
com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const
com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Line 1530
fwklo.dll!`anonymous namespace'::Frame::close(unsigned char bDeliverOwnership) Line 1781
sfxlo.dll!SfxFrame::DoClose() Line 134
sfxlo.dll!SfxViewFrame::Notify(SfxBroadcaster & __formal, const SfxHint & rHint) Line 1290
svllo.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint) Line 52
sfxlo.dll!SfxModelListener_Impl::notifyClosing(const com::sun::star::lang::EventObject & __formal)
Line 170
sfxlo.dll!SfxBaseModel::close(unsigned char bDeliverOwnership) Line 1406
msci_uno.dll!`anonymous namespace'::callVirtualMethod(void * pAdjustedThisPtr, long nVtableIndex,
void * pRegisterReturn, _typelib_TypeClass eReturnTypeClass, long * pStackLongs, long nStackLongs)
Line 74
msci_uno.dll!`anonymous namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
bridges::cpp_uno::shared::VtableSlot aVtableSlot, _typelib_TypeDescriptionReference *
pReturnTypeRef, long nParams, _typelib_MethodParameter * pParams, void * pUnoReturn, void * *
pUnoArgs, _uno_Any * * ppUnoExc) Line 254
msci_uno.dll!bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const
_typelib_TypeDescription * pMemberDescr, void * pReturn, void * * pArgs, _uno_Any * * ppException)
Line 435
binaryurplo.dll!binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny * returnValue,
std::vector<binaryurp::BinaryAny,std::allocator<binaryurp::BinaryAny> > * outArguments) Line 241
binaryurplo.dll!binaryurp::IncomingRequest::execute() Line 73
binaryurplo.dll!request(void * pThreadSpecificData) Line 83
cppu3.dll!cppu_threadpool::JobQueue::enter(__int64 nDisposeId, bool bReturnWhenNoJob) Line 115
cppu3.dll!cppu_threadpool::ORequestThread::run() Line 173
cppu3.dll!threadFunc(void * param) Line 184
sal3.dll!oslWorkerWrapperFunction(void * pData) Line 57
Context
- vcl::Window::dispose deadlock · Stephan Bergmann
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.