[Libreoffice-bugs] [Bug 129838] New: deadlock with async vs sync cppu_threadpool::JobQueue in UITest_writer_dialogs

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Mon Jan 6 17:12:56 UTC 2020


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

            Bug ID: 129838
           Summary: deadlock with async vs sync cppu_threadpool::JobQueue
                    in UITest_writer_dialogs
           Product: LibreOffice
           Version: 6.5.0.0.alpha0+ Master
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: sdk
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: michael.stahl at cib.de

Description:

current master f1604675e71c67024887d12bf73ccb86ac05a7a3

the problem is:
* thread 6 runs async call SwXTextDocument::release() which blocks to acquire
SolarMutex
* thread 1 holds SolarMutex, blocks on sync call on same aThreadId


Steps to Reproduce:
have only seen it once

Actual Results:
(gdb) thread apply all bt

Thread 8 (Thread 0x7faa995c7700 (LWP 612145)):
#0  0x00007faabb116610 in __lll_lock_wait () at /lib64/libpthread.so.0
#1  0x00007faabb10efe1 in pthread_mutex_lock () at /lib64/libpthread.so.0
#2  0x00007faabb995ba6 in osl_acquireMutex(oslMutex) (pMutex=0x8b33b0) at
/work/lo/master/sal/osl/unx/mutex.cxx:100
#3  0x00007faab3a42867 in osl::Mutex::acquire() (this=0x8b85b8) at
/work/lo/master/include/osl/mutex.hxx:57
#4  0x00007faab43aa1ba in SvpSalYieldMutex::doAcquire(unsigned int)
(this=0x8b85b0, nLockCount=1) at /work/lo/master/vcl/headless/svpinst.cxx:360
#5  0x00007faaa90e8d6e in comphelper::SolarMutex::acquire(unsigned int)
(this=0x8b85b0, nLockCount=1) at
/work/lo/master/include/comphelper/solarmutex.hxx:86
#6  0x00007faaa90e91a5 in
osl::Guard<comphelper::SolarMutex>::Guard(comphelper::SolarMutex&)
(this=0x7faa995c5d80, t=...) at /work/lo/master/include/osl/mutex.hxx:135
#7  0x00007faaa90e8dc3 in SolarMutexGuard::SolarMutexGuard()
(this=0x7faa995c5d80) at /work/lo/master/include/vcl/svapp.hxx:1359
#8  0x00007faaa9158476 in framework::OComponentAccess::createEnumeration()
(this=0x5890aa0) at
/work/lo/master/framework/source/helper/ocomponentaccess.cxx:55
#9  0x00007faabb67ff28 in gcc3::callVirtualMethod(void*, unsigned int, void*,
_typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int,
unsigned long*, double*) (pThis=0x5890ac8, nVtableIndex=5,
pRegisterReturn=0x7faa995c5f20, pReturnTypeRef=0x9f66b0, bSimpleReturn=false,
pStack=0x7faa995c5f30, nStack=0, pGPR=0x7faa995c6060, pFPR=0x7faa995c6090) at
/work/lo/master/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:133
#10 0x00007faabb67eb7b in
cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*,
bridges::cpp_uno::shared::VtableSlot, typelib_TypeDescriptionReference*,
sal_Int32, typelib_MethodParameter*, void*, void**, uno_Any**)
(pThis=0x58914b0, aVtableSlot=..., pReturnTypeRef=0x9f66b0, nParams=0,
pParams=0x0, pUnoReturn=0x588dce0, pUnoArgs=0x0, ppUnoExc=0x7faa995c6200) at
/work/lo/master/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233
#11 0x00007faabb67f596 in
bridges::cpp_uno::shared::unoInterfaceProxyDispatch(uno_Interface*,
typelib_TypeDescription const*, void*, void**, uno_Any**) (pUnoI=0x58914b0,
pMemberDescr=0x9f8190, pReturn=0x588dce0, pArgs=0x0,
ppException=0x7faa995c6200) at
/work/lo/master/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413
#12 0x00007faaa9f7a3d7 in
binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*,
std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>
>*) const (this=0x5891210, returnValue=0x7faa995c65c0,
outArguments=0x7faa995c6640) at
/work/lo/master/binaryurp/source/incomingrequest.cxx:236
#13 0x00007faaa9f79280 in binaryurp::IncomingRequest::execute() const
(this=0x5891210) at /work/lo/master/binaryurp/source/incomingrequest.cxx:79
#14 0x00007faaa9f9de95 in binaryurp::(anonymous namespace)::request(void*)
(pThreadSpecificData=0x5891210) at
/work/lo/master/binaryurp/source/reader.cxx:85
#15 0x00007faaba3c22de in cppu_threadpool::JobQueue::enter(long, bool)
(this=0x5891c40, nDisposeId=92869344, bReturnWhenNoJob=true) at
/work/lo/master/cppu/source/threadpool/jobqueue.cxx:107
#16 0x00007faaba3c89ab in cppu_threadpool::ORequestThread::run()
(this=0x58912e0) at /work/lo/master/cppu/source/threadpool/thread.cxx:165
#17 0x00007faaba3c8eda in osl::threadFunc(void*) (param=0x58912f0) at
/work/lo/master/include/osl/thread.hxx:185
#18 0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x20cb060) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#19 0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#20 0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7faa93c74700 (LWP 609090)):
#0  0x00007faabb112d45 in pthread_cond_wait@@GLIBC_2.3.2 () at
/lib64/libpthread.so.0
#1  0x00007faabb983130 in osl_waitCondition(oslCondition, TimeValue const*)
(Condition=0x1a92660, pTimeout=0x0) at
/work/lo/master/sal/osl/unx/conditn.cxx:231
#2  0x00007faaaff0cb1c in osl::Condition::wait(TimeValue const*)
(this=0x4fe2000, pTimeout=0x0) at /work/lo/master/include/osl/conditn.hxx:119
#3  0x00007faaaff0768b in GrammarCheckingIterator::DequeueAndCheck()
(this=0x4fe1e50) at /work/lo/master/linguistic/source/gciterator.cxx:701
#4  0x00007faaaff04e16 in lcl_workerfunc(void*) (gci=0x4fe1e50) at
/work/lo/master/linguistic/source/gciterator.cxx:217
#5  0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x551fd80) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#6  0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#7  0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7faaab0fb700 (LWP 608995)):
#0  0x00007faabb116610 in __lll_lock_wait () at /lib64/libpthread.so.0
#1  0x00007faabb10efe1 in pthread_mutex_lock () at /lib64/libpthread.so.0
#2  0x00007faabb995ba6 in osl_acquireMutex(oslMutex) (pMutex=0x8b33b0) at
/work/lo/master/sal/osl/unx/mutex.cxx:100
#3  0x00007faab3a42867 in osl::Mutex::acquire() (this=0x8b85b8) at
/work/lo/master/include/osl/mutex.hxx:57
#4  0x00007faab43aa1ba in SvpSalYieldMutex::doAcquire(unsigned int)
(this=0x8b85b0, nLockCount=1) at /work/lo/master/vcl/headless/svpinst.cxx:360
#5  0x00007faa96194988 in comphelper::SolarMutex::acquire(unsigned int)
(this=0x8b85b0, nLockCount=1) at
/work/lo/master/include/comphelper/solarmutex.hxx:86
#6  0x00007faa96195ec7 in
osl::Guard<comphelper::SolarMutex>::Guard(comphelper::SolarMutex&)
(this=0x7faaab0f9be0, t=...) at /work/lo/master/include/osl/mutex.hxx:135
#7  0x00007faa961949dd in SolarMutexGuard::SolarMutexGuard()
(this=0x7faaab0f9be0) at /work/lo/master/include/vcl/svapp.hxx:1359
#8  0x00007faa97439c4c in
sw::UnoImplPtrDeleter<SwXTextDocument::Impl>::operator()(SwXTextDocument::Impl*)
(this=0x57598d0, pUnoImpl=0x57e81c0) at
/work/lo/master/sw/inc/unobaseclass.hxx:92
#9  0x00007faa97437572 in std::unique_ptr<SwXTextDocument::Impl,
sw::UnoImplPtrDeleter<SwXTextDocument::Impl> >::~unique_ptr() (this=0x57598d0,
__in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:284
#10 0x00007faa9741af82 in SwXTextDocument::~SwXTextDocument() (this=0x5759620,
__in_chrg=<optimized out>) at
/work/lo/master/sw/source/uibase/uno/unotxdoc.cxx:441
#11 0x00007faa9741b036 in SwXTextDocument::~SwXTextDocument() (this=0x5759620,
__in_chrg=<optimized out>) at
/work/lo/master/sw/source/uibase/uno/unotxdoc.cxx:459
#12 0x00007faaba2b0824 in cppu::OWeakObject::release() (this=0x5759760) at
/work/lo/master/cppuhelper/source/weak.cxx:233
#13 0x00007faab8ecc5fe in SfxBaseModel::release() (this=0x5759760) at
/work/lo/master/sfx2/source/doc/sfxbasemodel.cxx:563
#14 0x00007faa974192f8 in SwXTextDocument::release() (this=0x5759620) at
/work/lo/master/sw/source/uibase/uno/unotxdoc.cxx:363
#15 0x00007faabb681ae9 in
bridges::cpp_uno::shared::freeUnoInterfaceProxy(uno_ExtEnvironment*, void*)
(pEnv=0x20353d0, pProxy=0x583f900) at
/work/lo/master/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx:41
#16 0x00007faaba40b990 in (anonymous
namespace)::s_stub_defenv_revokeInterface(va_list*) (pParam=0x7faaab0f9f50) at
/work/lo/master/cppu/source/uno/lbenv.cxx:367
#17 0x00007faaba406790 in s_environment_invoke_v(uno_Environment*,
uno_Environment*, uno_EnvCallee*, va_list*) (pCurrEnv=0x0,
pTargetEnv=0x20353d0, pCallee=0x7faaba40b5f9 <(anonymous
namespace)::s_stub_defenv_revokeInterface(va_list*)>, pParam=0x7faaab0f9f50) at
/work/lo/master/cppu/source/uno/EnvStack.cxx:296
#18 0x00007faaba406846 in uno_Environment_invoke_v(uno_Environment*,
uno_EnvCallee*, va_list*) (pTargetEnv=0x20353d0, pCallee=0x7faaba40b5f9
<(anonymous namespace)::s_stub_defenv_revokeInterface(va_list*)>,
pParam=0x7faaab0f9f50) at /work/lo/master/cppu/source/uno/EnvStack.cxx:315
#19 0x00007faaba406901 in uno_Environment_invoke(uno_Environment*,
uno_EnvCallee*, ...) (pEnv=0x20353d0, pCallee=0x7faaba40b5f9 <(anonymous
namespace)::s_stub_defenv_revokeInterface(va_list*)>) at
/work/lo/master/cppu/source/uno/EnvStack.cxx:324
#20 0x00007faaba40bdd6 in (anonymous
namespace)::defenv_revokeInterface(uno_ExtEnvironment*, void*) (pEnv=0x20353d0,
pInterface=0x583f900) at /work/lo/master/cppu/source/uno/lbenv.cxx:421
#21 0x00007faabb681c11 in
bridges::cpp_uno::shared::releaseProxy(uno_Interface*) (pUnoI=0x583f900) at
/work/lo/master/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx:78
#22 0x00007faaa9f58e23 in
com::sun::star::uno::UnoInterfaceReference::~UnoInterfaceReference()
(this=0x7faaab0fa0d0, __in_chrg=<optimized out>) at
/work/lo/master/include/uno/dispatcher.hxx:103
#23 0x00007faaa9f53d94 in binaryurp::Bridge::releaseStub(rtl::OUString const&,
com::sun::star::uno::TypeDescription const&) (this=0x20384f0,
oid="5759620;gcc3[0];19db4ecca6e0446bb4b5ce947d4bf04a", type=...) at
/work/lo/master/binaryurp/source/bridge.cxx:485
#24 0x00007faaa9f79b83 in
binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*,
std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>
>*) const (this=0x58440f0, returnValue=0x7faaab0fa5c0,
outArguments=0x7faaab0fa640) at
/work/lo/master/binaryurp/source/incomingrequest.cxx:138
#25 0x00007faaa9f79280 in binaryurp::IncomingRequest::execute() const
(this=0x58440f0) at /work/lo/master/binaryurp/source/incomingrequest.cxx:79
#26 0x00007faaa9f9de95 in binaryurp::(anonymous namespace)::request(void*)
(pThreadSpecificData=0x58440f0) at
/work/lo/master/binaryurp/source/reader.cxx:85
#27 0x00007faaba3c22de in cppu_threadpool::JobQueue::enter(long, bool)
(this=0x58457a0, nDisposeId=34440304, bReturnWhenNoJob=true) at
/work/lo/master/cppu/source/threadpool/jobqueue.cxx:107
    ^^^ m_mapQueue.find( aThreadId ).second.second
#28 0x00007faaba3c89ab in cppu_threadpool::ORequestThread::run()
(this=0x20d8470) at /work/lo/master/cppu/source/threadpool/thread.cxx:165
#29 0x00007faaba3c8eda in osl::threadFunc(void*) (param=0x20d8480) at
/work/lo/master/include/osl/thread.hxx:185
#30 0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x50b0990) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#31 0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#32 0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7faa9a0bb700 (LWP 608791)):
#0  0x00007faabb5958ec in recv () at /lib64/libc.so.6
#1  0x00007faabb998424 in osl_receivePipe(oslPipe, void*, sal_Int32)
(pPipe=0x2038460, pBuffer=0x5676138, BytesToRead=8) at
/work/lo/master/sal/osl/unx/pipe.cxx:438
#2  0x00007faabb998a05 in osl_readPipe(oslPipe, void*, sal_Int32)
(pPipe=0x2038460, pBuffer=0x5676138, n=8) at
/work/lo/master/sal/osl/unx/pipe.cxx:508
#3  0x00007faaaa027820 in osl::StreamPipe::read(void*, int) const
(this=0x115c650, pBuffer=0x5676138, n=8) at
/work/lo/master/include/osl/pipe.hxx:196
#4  0x00007faaaa02656b in io_acceptor::(anonymous
namespace)::PipeConnection::read(com::sun::star::uno::Sequence<signed char>&,
sal_Int32) (this=0x115c620, aReadBytes=uno::Sequence of length 8 = {...},
nBytesToRead=8) at /work/lo/master/io/source/acceptor/acc_pipe.cxx:82
#5  0x00007faaa9f9dca2 in binaryurp::(anonymous
namespace)::read(com::sun::star::uno::Reference<com::sun::star::connection::XConnection>
const&, sal_uInt32, bool) (connection=uno::Reference to
(io_acceptor::(anonymous namespace)::PipeConnection *) 0x115c648, size=8,
eofOk=true) at /work/lo/master/binaryurp/source/reader.cxx:69
#6  0x00007faaa9f9e0f9 in binaryurp::Reader::execute() (this=0x20c76b0) at
/work/lo/master/binaryurp/source/reader.cxx:104
#7  0x00007faab99c2592 in salhelper::Thread::run() (this=0x20c76b0) at
/work/lo/master/salhelper/source/thread.cxx:40
#8  0x00007faab99c28e6 in osl::threadFunc(void*) (param=0x20c76c0) at
/work/lo/master/include/osl/thread.hxx:185
#9  0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x20c6de0) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#10 0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#11 0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7faa9a999700 (LWP 608789)):
#0  0x00007faabb112d45 in pthread_cond_wait@@GLIBC_2.3.2 () at
/lib64/libpthread.so.0
#1  0x00007faabb983130 in osl_waitCondition(oslCondition, TimeValue const*)
(Condition=0x2039af0, pTimeout=0x0) at
/work/lo/master/sal/osl/unx/conditn.cxx:231
#2  0x00007faaa9f59c70 in osl::Condition::wait(TimeValue const*)
(this=0x20c90f0, pTimeout=0x0) at /work/lo/master/include/osl/conditn.hxx:119
#3  0x00007faaa9fa5bd4 in binaryurp::Writer::execute() (this=0x20c8f10) at
/work/lo/master/binaryurp/source/writer.cxx:150
#4  0x00007faab99c2592 in salhelper::Thread::run() (this=0x20c8f10) at
/work/lo/master/salhelper/source/thread.cxx:40
#5  0x00007faab99c28e6 in osl::threadFunc(void*) (param=0x20c8f20) at
/work/lo/master/include/osl/thread.hxx:185
#6  0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x20c74f0) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#7  0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#8  0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7faaa9f3b700 (LWP 608620)):
#0  0x00007faabb59569f in accept () at /lib64/libc.so.6
#1  0x00007faabb997fb8 in osl_acceptPipe(oslPipe) (pPipe=0x1f776d0) at
/work/lo/master/sal/osl/unx/pipe.cxx:380
#2  0x00007faaaa027712 in osl::Pipe::accept(osl::StreamPipe&)
(this=0x7faaa9f3a608, Connection=...) at
/work/lo/master/include/osl/pipe.hxx:151
#3  0x00007faaaa026b06 in io_acceptor::PipeAcceptor::accept() (this=0x8b3a90)
at /work/lo/master/io/source/acceptor/acc_pipe.cxx:156
#4  0x00007faaaa033392 in io_acceptor::(anonymous
namespace)::OAcceptor::accept(rtl::OUString const&) (this=0x1b0a780,
sConnectionDescription="pipe,name=pytest786c4164-3090-11ea-b572-8c89a5bfb18f")
at /work/lo/master/io/source/acceptor/acceptor.cxx:207
#5  0x00007faaaa8dccf0 in desktop::Acceptor::run() (this=0x1b09670) at
/work/lo/master/desktop/source/offacc/acceptor.cxx:109
#6  0x00007faaaa8dc61d in desktop::offacc_workerfunc(void*) (acc=0x1b09670) at
/work/lo/master/desktop/source/offacc/acceptor.cxx:47
#7  0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x1b0c6a0) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#8  0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#9  0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7faaaa89a700 (LWP 608619)):
#0  0x00007faabb59569f in accept () at /lib64/libc.so.6
#1  0x00007faabb997fb8 in osl_acceptPipe(oslPipe) (pPipe=0x1afef00) at
/work/lo/master/sal/osl/unx/pipe.cxx:380
#2  0x00007faabb75b114 in osl::Pipe::accept(osl::StreamPipe&) (this=0x1afda70,
Connection=...) at /work/lo/master/include/osl/pipe.hxx:151
#3  0x00007faabb759645 in desktop::PipeIpcThread::execute() (this=0x1afda40) at
/work/lo/master/desktop/source/app/officeipcthread.cxx:1140
#4  0x00007faab99c2592 in salhelper::Thread::run() (this=0x1afda40) at
/work/lo/master/salhelper/source/thread.cxx:40
#5  0x00007faab99c28e6 in osl::threadFunc(void*) (param=0x1afda50) at
/work/lo/master/include/osl/thread.hxx:185
#6  0x00007faabb9acbfb in osl_thread_start_Impl(void*) (pData=0x1a75eb0) at
/work/lo/master/sal/osl/unx/thread.cxx:256
#7  0x00007faabb10c4e2 in start_thread () at /lib64/libpthread.so.0
#8  0x00007faabb594693 in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7faaab405cc0 (LWP 608450)):
#0  0x00007faabb112d45 in pthread_cond_wait@@GLIBC_2.3.2 () at
/lib64/libpthread.so.0
#1  0x00007faabb983130 in osl_waitCondition(oslCondition, TimeValue const*)
(Condition=0x588d0a0, pTimeout=0x0) at
/work/lo/master/sal/osl/unx/conditn.cxx:231
#2  0x00007faaba3c2f28 in osl::Condition::wait(TimeValue const*)
(this=0x588fe90, pTimeout=0x0) at /work/lo/master/include/osl/conditn.hxx:119
#3  0x00007faaba3c2117 in cppu_threadpool::JobQueue::enter(long, bool)
(this=0x588fdb0, nDisposeId=34144576, bReturnWhenNoJob=false) at
/work/lo/master/cppu/source/threadpool/jobqueue.cxx:73
    ^^^ m_mapQueue.find( aThreadId ).second.first
#4  0x00007faaba3d1491 in cppu_threadpool::ThreadPool::enter(rtl::ByteSequence
const&, long) (this=0x20c9180, aThreadId=..., nDisposeId=34144576) at
/work/lo/master/cppu/source/threadpool/threadpool.cxx:312
#5  0x00007faaba3d1b0c in uno_threadpool_enter(uno_ThreadPool, void**)
(hPool=0x2090140, ppJob=0x7ffe7b490680) at
/work/lo/master/cppu/source/threadpool/threadpool.cxx:416
#6  0x00007faaa9f54791 in binaryurp::Bridge::makeCall(rtl::OUString const&,
com::sun::star::uno::TypeDescription const&, bool,
std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>
> const&, binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny,
std::allocator<binaryurp::BinaryAny> >*) (this=0x20384f0,
oid="21dfaf0;uno[0];8d9eb;566c3cc06d45461991d3f7f67781921", member=...,
setter=false, inArguments=std::__debug::vector of length 1, capacity 1 = {...},
returnValue=0x7ffe7b490730, outArguments=0x7ffe7b4907f0) at
/work/lo/master/binaryurp/source/bridge.cxx:605
#7  0x00007faaa9f9cfbe in
binaryurp::Proxy::do_dispatch_throw(_typelib_TypeDescription const*, void*,
void**, _uno_Any**) const (this=0x5671470, member=0x50ab0b0,
returnValue=0x7ffe7b490dc0, arguments=0x7ffe7b490980, exception=0x7ffe7b490a30)
at /work/lo/master/binaryurp/source/proxy.cxx:168
#8  0x00007faaa9f9ca5b in
binaryurp::Proxy::do_dispatch(_typelib_TypeDescription const*, void*, void**,
_uno_Any**) const (this=0x5671470, member=0x50ab0b0,
returnValue=0x7ffe7b490dc0, arguments=0x7ffe7b490980, exception=0x7ffe7b490a30)
at /work/lo/master/binaryurp/source/proxy.cxx:101
#9  0x00007faaa9f9c836 in binaryurp::(anonymous
namespace)::proxy_dispatchInterface(uno_Interface*, typelib_TypeDescription
const*, void*, void**, uno_Any**) (pUnoI=0x5671470, pMemberType=0x50ab0b0,
pReturn=0x7ffe7b490dc0, pArgs=0x7ffe7b490980, ppException=0x7ffe7b490a30) at
/work/lo/master/binaryurp/source/proxy.cxx:60
#10 0x00007faabb66fa6c in
cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy*,
typelib_TypeDescription const*, typelib_TypeDescriptionReference*, sal_Int32,
typelib_MethodParameter*, void**, void**, void**, sal_uInt64*)
(pThis=0x1f37020, pMemberTypeDescr=0x50ab0b0, pReturnTypeRef=0x8bdc50,
nParams=1, pParams=0x50a3120, gpreg=0x7ffe7b490df0, fpreg=0x7ffe7b490e10,
ovrflw=0x7ffe7b490e60, pRegisterReturn=0x7ffe7b490dc0) at
/work/lo/master/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:185
#11 0x00007faabb6704f5 in cpp_vtable_call(sal_Int32, sal_Int32, void**, void**,
void**, sal_uInt64*) (nFunctionIndex=4, nVtableOffset=0, gpreg=0x7ffe7b490de0,
fpreg=0x7ffe7b490e10, ovrflw=0x7ffe7b490e60, pRegisterReturn=0x7ffe7b490dc0) at
/work/lo/master/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:373
#12 0x00007faabb68c6fc in privateSnippetExecutor () at
/work/lo/master/instdir/program/libgcc3_uno.so
#13 0x00007faab8f3efe5 in
comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent>::operator()(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener>
const&) const (this=0x7ffe7b490f10, listener=uno::Reference to
(com::sun::star::uno::XInterface *) 0x1f37048) at
/work/lo/master/include/comphelper/interfacecontainer2.hxx:253
#14 0x00007faab8f3e18b in
comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener,
comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent>
>(comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent> const&) (this=0x1b8bc10, func=...) at
/work/lo/master/include/comphelper/interfacecontainer2.hxx:266
#15 0x00007faab8f3d53b in
comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent>(void
(com::sun::star::document::XDocumentEventListener::*)(com::sun::star::document::DocumentEvent
const&), com::sun::star::document::DocumentEvent const&) (this=0x1b8bc10,
NotificationMethod=&virtual
com::sun::star::document::XDocumentEventListener::documentEventOccured(com::sun::star::document::DocumentEvent
const&), Event=...) at
/work/lo/master/include/comphelper/interfacecontainer2.hxx:279
#16 0x00007faab8f3b49a in (anonymous
namespace)::SfxGlobalEvents_Impl::implts_notifyListener(com::sun::star::document::DocumentEvent
const&) (this=0x1b8bb80, aEvent=...) at
/work/lo/master/sfx2/source/notify/globalevents.cxx:389
#17 0x00007faab8f3a286 in (anonymous
namespace)::SfxGlobalEvents_Impl::documentEventOccured(com::sun::star::document::DocumentEvent
const&) (this=0x1b8bb80, Event=...) at
/work/lo/master/sfx2/source/notify/globalevents.cxx:208
#18 0x00007faab8ee4c2b in (anonymous
namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent>::operator()(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener>
const&) const (this=0x7ffe7b4910f0, listener=uno::Reference to ((anonymous
namespace)::SfxGlobalEvents_Impl *) 0x1b8bbd0) at
/work/lo/master/sfx2/source/doc/sfxbasemodel.cxx:3193
#19 0x00007faab8ee42a3 in
cppu::OInterfaceContainerHelper::forEach<com::sun::star::document::XDocumentEventListener,
(anonymous
namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent> >((anonymous
namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener,
com::sun::star::document::DocumentEvent> const&) (this=0x588c9f0, func=...) at
/work/lo/master/include/cppuhelper/interfacecontainer.h:288
#20 0x00007faab8edb7af in SfxBaseModel::postEvent_Impl(rtl::OUString const&,
com::sun::star::uno::Reference<com::sun::star::frame::XController2> const&)
(this=0x57e6e50, aName="OnCreate", xController=empty uno::Reference) at
/work/lo/master/sfx2/source/doc/sfxbasemodel.cxx:3227
#21 0x00007faab8ed9249 in SfxBaseModel::Notify(SfxBroadcaster&, SfxHint const&)
(this=0x57e6e50, rBC=..., rHint=...) at
/work/lo/master/sfx2/source/doc/sfxbasemodel.cxx:2876
#22 0x00007faab8591057 in SfxBroadcaster::Broadcast(SfxHint const&)
(this=0x58b89b0, rHint=...) at
/work/lo/master/svl/source/notify/SfxBroadcaster.cxx:49
#23 0x00007faab8a81862 in SfxApplication::NotifyEvent(SfxEventHint const&,
bool) (this=0x1b8bfb0, rEventHint=..., bSynchron=true) at
/work/lo/master/sfx2/source/appl/appcfg.cxx:814
#24 0x00007faab8ea6937 in SfxObjectShell::SetInitialized_Impl(bool)
(this=0x58b89b0, i_fromInitNew=true) at
/work/lo/master/sfx2/source/doc/objxtor.cxx:1090
#25 0x00007faab8e8e3ab in SfxObjectShell::DoInitNew(SfxMedium*)
(this=0x58b89b0, pMed=0x0) at /work/lo/master/sfx2/source/doc/objstor.cxx:503
#26 0x00007faa969aa08e in SwXMLTextBlocks::SwXMLTextBlocks(rtl::OUString
const&) (this=0x56983d0,
rFile="file:///work/lo/master/workdir/UITest/writer_dialogs/user/user/autotext/mytexts.bau")
at /work/lo/master/sw/source/core/swg/SwXMLTextBlocks.cxx:66
#27 0x00007faa969ba99c in SwTextBlocks::SwTextBlocks(rtl::OUString const&)
(this=0x57ddda0,
rFile="file:///work/lo/master/workdir/UITest/writer_dialogs/user/user/autotext/mytexts.bau")
at /work/lo/master/sw/source/core/swg/swblocks.cxx:230
#28 0x00007faa9726b7bc in SwGlossaries::GetGlosDoc(rtl::OUString const&, bool)
const (this=0x1f38e20, rName="mytexts*1", bCreate=false) at
/work/lo/master/sw/source/uibase/misc/glosdoc.cxx:286
#29 0x00007faa9726ab74 in SwGlossaries::GetGroupDoc(rtl::OUString const&, bool)
(this=0x1f38e20, rName="mytexts*1", bCreate=false) at
/work/lo/master/sw/source/uibase/misc/glosdoc.cxx:171
#30 0x00007faa97176ca1 in SwGlossaryHdl::IsReadOnly(rtl::OUString const*) const
(this=0x5686360, pGrpNm=0x7ffe7b491958) at
/work/lo/master/sw/source/uibase/dochdl/gloshdl.cxx:642
#31 0x00007faa9315c358 in SwGlossaryDlg::Init() (this=0x565bb00) at
/work/lo/master/sw/source/ui/misc/glossary.cxx:734
#32 0x00007faa93157587 in SwGlossaryDlg::SwGlossaryDlg(SfxViewFrame const*,
SwGlossaryHdl*, SwWrtShell*) (this=0x565bb00, pViewFrame=0x50abc80,
pGlosHdl=0x5686360, pWrtShell=0x50dd7e0) at
/work/lo/master/sw/source/ui/misc/glossary.cxx:250
#33 0x00007faa92fdc480 in std::make_unique<SwGlossaryDlg, SfxViewFrame*&,
SwGlossaryHdl*&, SwWrtShell*&>(SfxViewFrame*&, SwGlossaryHdl*&, SwWrtShell*&)
(__args#0=@0x7ffe7b491d48: 0x50abc80, __args#1=@0x7ffe7b491d40: 0x5686360,
__args#2=@0x7ffe7b491d38: 0x50dd7e0) at
/usr/include/c++/9/bits/unique_ptr.h:849
#34 0x00007faa92fcd460 in
SwAbstractDialogFactory_Impl::CreateGlossaryDlg(SfxViewFrame*, SwGlossaryHdl*,
SwWrtShell*) (this=0x7faa934701c8 <swui::GetFactory()::aFactory>,
pViewFrame=0x50abc80, pGlosHdl=0x5686360, pWrtShell=0x50dd7e0) at
/work/lo/master/sw/source/ui/dialog/swdlgfact.cxx:1019
#35 0x00007faa97173b28 in SwGlossaryHdl::GlossaryDlg() (this=0x5686360) at
/work/lo/master/sw/source/uibase/dochdl/gloshdl.cxx:83
#36 0x00007faa973178e2 in SwTextShell::ExecGlossary(SfxRequest&)
(this=0x52fb360, rReq=...) at
/work/lo/master/sw/source/uibase/shells/textglos.cxx:50
#37 0x00007faa97319af0 in SfxStubSwTextShellExecGlossary(SfxShell*,
SfxRequest&) (pShell=0x52fb360, rReq=...) at
/work/lo/master/workdir/SdiTarget/sw/sdi/swslots.hxx:3049
#38 0x00007faab8bc8e40 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&),
SfxRequest&) (this=0x52fb360, pFunc=0x7faa97319ac2
<SfxStubSwTextShellExecGlossary(SfxShell*, SfxRequest&)>, rReq=...) at
/work/lo/master/include/sfx2/shell.hxx:197
#39 0x00007faab8bb4e50 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&,
SfxRequest&, bool) (this=0x50cea30, rShell=..., rSlot=..., rReq=...,
bRecord=true) at /work/lo/master/sfx2/source/control/dispatch.cxx:254
#40 0x00007faab8bb8958 in
SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >) (this=0x50cea30,
pReq=std::unique_ptr<SfxRequest> = {...}) at
/work/lo/master/sfx2/source/control/dispatch.cxx:991
#41 0x00007faab8bdfe54 in std::__invoke_impl<void, void
(SfxDispatcher::*&)(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest>
>), SfxDispatcher*&, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> > >(std::__invoke_memfun_deref, void
(SfxDispatcher::*&)(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest>
>), SfxDispatcher*&, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >&&) (__f=@0x1a8a9f0: (void
(SfxDispatcher::*)(SfxDispatcher * const, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)) 0x7faab8bb87da
<SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)>, __t=@0x1a8aa00: 0x50cea30, __args#0=...)
at /usr/include/c++/9/bits/invoke.h:73
#42 0x00007faab8bdce17 in std::__invoke<void
(SfxDispatcher::*&)(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest>
>), SfxDispatcher*&, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> > >(void
(SfxDispatcher::*&)(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest>
>), SfxDispatcher*&, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >&&) (__fn=@0x1a8a9f0: (void
(SfxDispatcher::*)(SfxDispatcher * const, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)) 0x7faab8bb87da
<SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)>, __args#0=@0x1a8aa00: 0x50cea30,
__args#1=...) at /usr/include/c++/9/bits/invoke.h:95
#43 0x00007faab8bd7f04 in std::_Bind<void (SfxDispatcher::*(SfxDispatcher*,
std::_Placeholder<1>))(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)>::__call<void, std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >&&, 0ul,
1ul>(std::tuple<std::unique_ptr<SfxRequest, std::default_delete<SfxRequest>
>&&>&&, std::_Index_tuple<0ul, 1ul>) (this=0x1a8a9f0, __args=...) at
/usr/include/c++/9/functional:400
#44 0x00007faab8bd1d24 in std::_Bind<void (SfxDispatcher::*(SfxDispatcher*,
std::_Placeholder<1>))(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)>::operator()<std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >, void>(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >&&) (this=0x1a8a9f0, __args#0=...) at
/usr/include/c++/9/functional:484
#45 0x00007faab8bcdabc in std::_Function_handler<void
(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest> >),
std::_Bind<void (SfxDispatcher::*(SfxDispatcher*,
std::_Placeholder<1>))(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)> >::_M_invoke(std::_Any_data const&,
std::unique_ptr<SfxRequest, std::default_delete<SfxRequest> >&&)
(__functor=..., __args#0=...) at /usr/include/c++/9/bits/std_function.h:300
#46 0x00007faab8f41227 in std::function<void (std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >)>::operator()(std::unique_ptr<SfxRequest,
std::default_delete<SfxRequest> >) const (this=0x50d6350,
__args#0=std::unique_ptr<SfxRequest> = {...}) at
/usr/include/c++/9/bits/std_function.h:690
#47 0x00007faab8f410a8 in SfxHintPoster::DoEvent_Impl(void*) (this=0x50d6340,
pPostedHint=0x20d1560) at /work/lo/master/sfx2/source/notify/hintpost.cxx:47
#48 0x00007faab8f41047 in SfxHintPoster::LinkStubDoEvent_Impl(void*, void*)
(instance=0x50d6340, data=0x20d1560) at
/work/lo/master/sfx2/source/notify/hintpost.cxx:44
#49 0x00007faab3bb47e5 in Link<void*, void>::Call(void*) const (this=0x1f3b938,
data=0x20d1560) at /work/lo/master/include/tools/link.hxx:111
#50 0x00007faab3bb1c55 in ImplHandleUserEvent(ImplSVEvent*)
(pSVEvent=0x1f3b930) at /work/lo/master/vcl/source/window/winproc.cxx:2006
#51 0x00007faab3bb393c in ImplWindowFrameProc(vcl::Window*, SalEvent, void
const*) (_pWindow=0x1b98220, nEvent=SalEvent::UserEvent, pEvent=0x1f3b930) at
/work/lo/master/vcl/source/window/winproc.cxx:2559
#52 0x00007faab439280c in SalFrame::CallCallback(SalEvent, void const*) const
(this=0x1b94d40, nEvent=SalEvent::UserEvent, pEvent=0x1f3b930) at
/work/lo/master/vcl/inc/salframe.hxx:299
#53 0x00007faab43a9ddf in
SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) (this=0x8b86f0,
aEvent=...) at /work/lo/master/vcl/headless/svpinst.cxx:293
#54 0x00007faab415362d in SalUserEventList::DispatchUserEvents(bool)
(this=0x8b8710, bHandleAllCurrentEvents=false) at
/work/lo/master/vcl/source/app/salusereventlist.cxx:108
#55 0x00007faab43aa50f in SvpSalInstance::DoYield(bool, bool) (this=0x8b86f0,
bWait=true, bHandleAllCurrentEvents=false) at
/work/lo/master/vcl/headless/svpinst.cxx:438
#56 0x00007faab41e0a45 in ImplYield(bool, bool) (i_bWait=true,
i_bAllEvents=false) at /work/lo/master/vcl/source/app/svapp.cxx:446
#57 0x00007faab41e0f63 in Application::Yield() () at
/work/lo/master/vcl/source/app/svapp.cxx:510
#58 0x00007faab41e0842 in Application::Execute() () at
/work/lo/master/vcl/source/app/svapp.cxx:427
#59 0x00007faabb7079b9 in desktop::Desktop::Main() (this=0x7ffe7b492fe0) at
/work/lo/master/desktop/source/app/app.cxx:1609
#60 0x00007faab41fbfe8 in ImplSVMain() () at
/work/lo/master/vcl/source/app/svmain.cxx:191
#61 0x00007faab41fc10d in SVMain() () at
/work/lo/master/vcl/source/app/svmain.cxx:225
#62 0x00007faabb762441 in soffice_main() () at
/work/lo/master/desktop/source/app/sofficemain.cxx:171
#63 0x000000000040087e in sal_main () at
/work/lo/master/desktop/source/app/main.c:48
#64 0x0000000000400864 in main (argc=7, argv=0x7ffe7b4933a8) at
/work/lo/master/desktop/source/app/main.c:47
(gdb) thread
[Current thread is 1 (Thread 0x7faaab405cc0 (LWP 608450))]
(gdb) frame 3
#3  0x00007faaba3c2117 in cppu_threadpool::JobQueue::enter (this=0x588fdb0,
nDisposeId=34144576, bReturnWhenNoJob=false) at
/work/lo/master/cppu/source/threadpool/jobqueue.cxx:73
73                  m_cndWait.wait();
(gdb) p *this
$1 = {
  m_mutex = {
    mutex = 0x588fc10
  },
  m_lstJob = std::__debug::deque with 1 element = {{
      pThreadSpecificData = 0x588d8f0,
      doRequest = 0x0
    }},
  m_lstCallstack = std::__debug::deque with 1 element = {34144576},
  m_nToDo = 1,
  m_bSuspended = true,
  m_cndWait = {
    condition = 0x588d0a0
  },
  m_DisposedCallerAdmin = std::shared_ptr<cppu_threadpool::DisposedCallerAdmin>
(use count 6, weak count 0) = {
    get() = 0x20341e0
  }
}
(gdb) up
#4  0x00007faaba3d1491 in cppu_threadpool::ThreadPool::enter (this=0x20c9180,
aThreadId=..., nDisposeId=34144576) at
/work/lo/master/cppu/source/threadpool/threadpool.cxx:312
312             void *pReturn = pQueue->enter( nDisposeId );
(gdb) p *this
$2 = cppu_threadpool::ThreadPool at 0x20c9180
(gdb) p m_mapQueue.find( aThreadId )
$3 = {
  <std::__detail::_Node_iterator_base<std::pair<rtl::ByteSequence const,
std::pair<cppu_threadpool::JobQueue*, cppu_threadpool::JobQueue*> >, true>> = {
    _M_cur = 0x5842220
  }, <No data fields>}
(gdb) p *m_mapQueue.find( aThreadId )
$4 = {
  first = {
    _pSequence = 0x50a93a0
  },
  second = {
    first = 0x588fdb0,
    second = 0x58457a0
  }
}


Expected Results:
no deadlock


Reproducible: Didn't try


User Profile Reset: No



Additional Info:

-- 
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/20200106/6deef0a6/attachment-0001.htm>


More information about the Libreoffice-bugs mailing list