[omniORB] thread mutex deadlock in omniOrbPOA::destroy
Michael Pronath
michael.pronath at gmx.de
Wed Sep 23 10:32:02 UTC 2020
Hi,
it seems to be possible (happened here but probably a rare case) that
there's a deadlock between two threads while destroying the POA (exiting
the server).
Two threads' stacktraces of a hanging process in deadlock:
Thread 1 (Thread 0x7f5eb91dc740 (LWP 17375)):
#0 0x00007f5eb62ab54d in __lll_lock_wait () from /lib64/libpthread.so.0
#1 0x00007f5eb62a6e9b in _L_lock_883 () from /lib64/libpthread.so.0
#2 0x00007f5eb62a6d68 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3 0x00007f5eb3d914b5 in omni::SocketCollection::wakeUp() () from libomniORB4.so.2
#4 0x00007f5eb3db6f84 in omni::unixEndpoint::Poke() () from libomniORB4.so.2
#5 0x00007f5eb3d7660c in omni::giopRendezvouser::terminate() () from libomniORB4.so.2
#6 0x00007f5eb3d74768 in omni::giopServer::deactivate() () from libomniORB4.so.2
#7 0x00007f5eb3d754ab in omni::giopServer::stop() () from libomniORB4.so.2
#8 0x00007f5eb3d30881 in omni::omniObjAdapter::adapterInactive() () from libomniORB4.so.2
#9 0x00007f5eb3d4e3f3 in omni::omniOrbPOA::do_destroy(bool) () from libomniORB4.so.2
#10 0x00007f5eb3d4e9dc in omni::omniOrbPOA::destroy(bool, bool) ()
Thread 6 (Thread 0x7f5ea75fe700 (LWP 17422)):
#0 0x00007f5eb62ab54d in __lll_lock_wait () from /lib64/libpthread.so.0
#1 0x00007f5eb62a6e9b in _L_lock_883 () from /lib64/libpthread.so.0
#2 0x00007f5eb62a6d68 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3 0x00007f5eb3d72b6d in omni::giopServer::notifyRzReadable(omni::giopConnection*, bool) ()
#4 0x00007f5eb3db6db4 in omni::unixEndpoint::notifyReadable(omni::SocketHolder*) ()
#5 0x00007f5eb3d91234 in omni::SocketCollection::Select() ()
#6 0x00007f5eb3db6cf4 in omni::unixEndpoint::AcceptAndMonitor(void (*)(void*, omni::giopConnection*), void*)
#7 0x00007f5eb3d76435 in omni::giopRendezvouser::execute() ()
#8 0x00007f5eb3d1e996 in omniAsyncWorker::real_run() ()
#9 0x00007f5eb3d1e5db in omniAsyncWorker::mid_run() ()
#10 0x00007f5eb3d1fa7a in omniAsyncWorker::run(void*) ()
#11 0x00007f5eb35508cd in omni_thread_wrapper ()
#12 0x00007f5eb62a4ea5 in start_thread () from /lib64/libpthread.so.0
Thread 6 locks pd_collection_lock in SocketCollection::Select and then
waits for pd_lock in giopServer::notifyRzReadable
Thread 1 locks pd_lock in giopServer::deactivate and then waits for
pd_collection_lock in SocketCollection::wakeUp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.omniorb-support.com/pipermail/omniorb-list/attachments/20200923/b07a5a09/attachment.html>
More information about the omniORB-list
mailing list