Archived
This forum has been archived. Please start a new discussion on GitHub.
dead lock
ice seem's will be dead lock sometime,all threads are lock, we gdb some threads as follow:
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78ae7e6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xb7e1cc6d in IceUtil::Cond::waitImpl<IceUtil::RecMutex> (this=0x818addc, mutex=@0x818ae0c) at ../../include/IceUtil/Cond.h:203
#3 0xb7e1cd3d in IceUtil::Monitor<IceUtil::RecMutex>::wait (this=0x818addc) at ../../include/IceUtil/Monitor.h:152
#4 0xb7e1a582 in IceInternal::ObjectAdapterFactory::waitForShutdown (this=0x818add0) at ObjectAdapterFactory.cpp:66
#5 0xb7d99734 in Ice::CommunicatorI::waitForShutdown (this=0x818b378) at CommunicatorI.cpp:119
#6 0x0810f82c in std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::map ()
#7 0xb7d768b3 in Ice::Application::main (this=0xbf99c23c, argc=1, argv=0xbf99c324, initData=@0xbf99c1b0) at Application.cpp:335
#8 0xb7d772b6 in Ice::Application::main (this=0xbf99c23c, argc=4, argv=0xbf99c324) at Application.cpp:224
#9 0x0808ee4e in std::__copy<true, std::random_access_iterator_tag>::copy<int> ()
#10 0xb765987c in __libc_start_main () from /lib/libc.so.6
#11 0x080614a1 in __gxx_personality_v0 ()
gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78aea5c in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0x080850d7 in IceUtil::Cond::timedWaitImpl<IceUtil::Mutex> ()
#3 0x080851b4 in IceUtil::Monitor<IceUtil::Mutex>::timedWait ()
#4 0xb7dbe945 in IceInternal::ConnectionMonitor::run (this=0x818ba30) at ConnectionMonitor.cpp:78
#5 0xb7c161bb in startHook (arg=0x818ba30) at Thread.cpp:357
#6 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#7 0xb770165e in clone () from /lib/libc.so.6
(gdb) quit
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78b0efe in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2 0xb78ad6f4 in _L_mutex_lock_363 () from /lib/libpthread.so.0
#3 0xb76a8f84 in free () from /lib/libc.so.6
#4 0xb7c1424a in IceUtil::RecMutex::lock (this=0x818ae0c) at RecMutex.cpp:243
#5 0xb7e1bb9c in IceUtil::Monitor<IceUtil::RecMutex>::lock (this=0x818addc) at ../../include/IceUtil/Monitor.h:89
#6 0xb7e1bbe5 in LockT (this=0xb4c82870, mutex=@0x818addc) at ../../include/IceUtil/Lock.h:49
#7 0xb7e19e40 in IceInternal::ObjectAdapterFactory::findObjectAdapter (this=0x818add0, proxy=@0xb4c828d4) at ObjectAdapterFactory.cpp:127
#8 0xb7e4f03e in IceProxy::Ice::Object::__getDelegate (this=0x81f0694) at Proxy.cpp:1038
#9 0x08094552 in Ice::Object::Object ()
#10 0x08087428 in std::operator==<char, std::char_traits<char>, std::allocator<char> > ()
#11 0x08077eaa in IceInternal::ProxyHandle<IceProxy::Ice::Object>::~ProxyHandle ()
#12 0xb7c161bb in startHook (arg=0x81ef928) at Thread.cpp:357
#13 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#14 0xb770165e in clone () from /lib/libc.so.6
(gdb)
gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78b0efe in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2 0xb78ad6dc in _L_mutex_lock_71 () from /lib/libpthread.so.0
#3 0xb775350c in archfname () from /lib/libc.so.6
#4 0xb7f04a04 in __gxx_personality_v0 () from /usr/local/Ice/lib/libIce.so.31
#5 0x9d4535b8 in ?? ()
#6 0xb7dd57d2 in ~LockT (this=0x818b7d8) at ../../include/IceUtil/Lock.h:57
#7 0x08082494 in IceUtil::Mutex::lock ()
#8 0x0811623d in IceUtil::LockT<IceUtil::Mutex>::LockT ()
#9 0xb7e4ef78 in IceProxy::Ice::Object::__getDelegate (this=0x818b7cc) at Proxy.cpp:1028
#10 0xb7e0bc41 in IceProxy::Ice::Locator::findObjectById (this=0x818b7c8, id=@0x81ffefc, __ctx=@0x818b9e4) at Locator.cpp:865
#11 0xb7e0196d in IceProxy::Ice::Locator::findObjectById (this=0x818b7c8, id=@0x81ffefc) at ../../include/Ice/Locator.h:385
#12 0xb7dfccb2 in IceInternal::LocatorInfo::getEndpoints (this=0x818bbe8, ref=@0x9d453a38, ttl=-1, cached=@0x9d453a2b) at LocatorInfo.cpp:351
#13 0xb7e21dfd in Ice::ObjectAdapterI::isLocal (this=0x818bdb0, proxy=@0x9d453b44) at ObjectAdapterI.cpp:553
#14 0xb7e19eb4 in IceInternal::ObjectAdapterFactory::findObjectAdapter (this=0x818add0, proxy=@0x9d453b44) at ObjectAdapterFactory.cpp:138
#15 0xb7e4f03e in IceProxy::Ice::Object::__getDelegate (this=0x81ffe54) at Proxy.cpp:1038
#16 0x080a690e in IceInternal::BasicStream::checkSeq ()
#17 0x08086d54 in IceUtil::Monitor<IceUtil::Mutex>::Monitor ()
#18 0x08073b93 in IceInternal::ProxyHandle<IceProxy::Ice::Object>::~ProxyHandle ()
#19 0xb7c161bb in startHook (arg=0x81ffdb8) at Thread.cpp:357
#20 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#21 0xb770165e in clone () from /lib/libc.so.6
seem's many threads are locked on this function: IceInternal::ObjectAdapterFactory::findObjectAdapter
why?
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78ae7e6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xb7e1cc6d in IceUtil::Cond::waitImpl<IceUtil::RecMutex> (this=0x818addc, mutex=@0x818ae0c) at ../../include/IceUtil/Cond.h:203
#3 0xb7e1cd3d in IceUtil::Monitor<IceUtil::RecMutex>::wait (this=0x818addc) at ../../include/IceUtil/Monitor.h:152
#4 0xb7e1a582 in IceInternal::ObjectAdapterFactory::waitForShutdown (this=0x818add0) at ObjectAdapterFactory.cpp:66
#5 0xb7d99734 in Ice::CommunicatorI::waitForShutdown (this=0x818b378) at CommunicatorI.cpp:119
#6 0x0810f82c in std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::map ()
#7 0xb7d768b3 in Ice::Application::main (this=0xbf99c23c, argc=1, argv=0xbf99c324, initData=@0xbf99c1b0) at Application.cpp:335
#8 0xb7d772b6 in Ice::Application::main (this=0xbf99c23c, argc=4, argv=0xbf99c324) at Application.cpp:224
#9 0x0808ee4e in std::__copy<true, std::random_access_iterator_tag>::copy<int> ()
#10 0xb765987c in __libc_start_main () from /lib/libc.so.6
#11 0x080614a1 in __gxx_personality_v0 ()
gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78aea5c in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0x080850d7 in IceUtil::Cond::timedWaitImpl<IceUtil::Mutex> ()
#3 0x080851b4 in IceUtil::Monitor<IceUtil::Mutex>::timedWait ()
#4 0xb7dbe945 in IceInternal::ConnectionMonitor::run (this=0x818ba30) at ConnectionMonitor.cpp:78
#5 0xb7c161bb in startHook (arg=0x818ba30) at Thread.cpp:357
#6 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#7 0xb770165e in clone () from /lib/libc.so.6
(gdb) quit
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78b0efe in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2 0xb78ad6f4 in _L_mutex_lock_363 () from /lib/libpthread.so.0
#3 0xb76a8f84 in free () from /lib/libc.so.6
#4 0xb7c1424a in IceUtil::RecMutex::lock (this=0x818ae0c) at RecMutex.cpp:243
#5 0xb7e1bb9c in IceUtil::Monitor<IceUtil::RecMutex>::lock (this=0x818addc) at ../../include/IceUtil/Monitor.h:89
#6 0xb7e1bbe5 in LockT (this=0xb4c82870, mutex=@0x818addc) at ../../include/IceUtil/Lock.h:49
#7 0xb7e19e40 in IceInternal::ObjectAdapterFactory::findObjectAdapter (this=0x818add0, proxy=@0xb4c828d4) at ObjectAdapterFactory.cpp:127
#8 0xb7e4f03e in IceProxy::Ice::Object::__getDelegate (this=0x81f0694) at Proxy.cpp:1038
#9 0x08094552 in Ice::Object::Object ()
#10 0x08087428 in std::operator==<char, std::char_traits<char>, std::allocator<char> > ()
#11 0x08077eaa in IceInternal::ProxyHandle<IceProxy::Ice::Object>::~ProxyHandle ()
#12 0xb7c161bb in startHook (arg=0x81ef928) at Thread.cpp:357
#13 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#14 0xb770165e in clone () from /lib/libc.so.6
(gdb)
gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb78b0efe in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2 0xb78ad6dc in _L_mutex_lock_71 () from /lib/libpthread.so.0
#3 0xb775350c in archfname () from /lib/libc.so.6
#4 0xb7f04a04 in __gxx_personality_v0 () from /usr/local/Ice/lib/libIce.so.31
#5 0x9d4535b8 in ?? ()
#6 0xb7dd57d2 in ~LockT (this=0x818b7d8) at ../../include/IceUtil/Lock.h:57
#7 0x08082494 in IceUtil::Mutex::lock ()
#8 0x0811623d in IceUtil::LockT<IceUtil::Mutex>::LockT ()
#9 0xb7e4ef78 in IceProxy::Ice::Object::__getDelegate (this=0x818b7cc) at Proxy.cpp:1028
#10 0xb7e0bc41 in IceProxy::Ice::Locator::findObjectById (this=0x818b7c8, id=@0x81ffefc, __ctx=@0x818b9e4) at Locator.cpp:865
#11 0xb7e0196d in IceProxy::Ice::Locator::findObjectById (this=0x818b7c8, id=@0x81ffefc) at ../../include/Ice/Locator.h:385
#12 0xb7dfccb2 in IceInternal::LocatorInfo::getEndpoints (this=0x818bbe8, ref=@0x9d453a38, ttl=-1, cached=@0x9d453a2b) at LocatorInfo.cpp:351
#13 0xb7e21dfd in Ice::ObjectAdapterI::isLocal (this=0x818bdb0, proxy=@0x9d453b44) at ObjectAdapterI.cpp:553
#14 0xb7e19eb4 in IceInternal::ObjectAdapterFactory::findObjectAdapter (this=0x818add0, proxy=@0x9d453b44) at ObjectAdapterFactory.cpp:138
#15 0xb7e4f03e in IceProxy::Ice::Object::__getDelegate (this=0x81ffe54) at Proxy.cpp:1038
#16 0x080a690e in IceInternal::BasicStream::checkSeq ()
#17 0x08086d54 in IceUtil::Monitor<IceUtil::Mutex>::Monitor ()
#18 0x08073b93 in IceInternal::ProxyHandle<IceProxy::Ice::Object>::~ProxyHandle ()
#19 0xb7c161bb in startHook (arg=0x81ffdb8) at Thread.cpp:357
#20 0xb78ab34b in start_thread () from /lib/libpthread.so.0
#21 0xb770165e in clone () from /lib/libc.so.6
seem's many threads are locked on this function: IceInternal::ObjectAdapterFactory::findObjectAdapter
why?
0
Comments
-
Hi,
It looks like you're using an old Ice version, we only provide free support on the forums for the latest Ice version. So I recommend to upgrade to 3.3.0 if you want us to help you with this matter. If you need commercial support for an older Ice version, please contact us at info@zeroc.com.
Cheers,
Benoit.0 -
can you sure it's the bug of ice-3.1.1?0
-
Hi,
I suspect it is but again I can't look into this some more unless you purchase commercial support for 3.1.1. I recommend to upgrade to 3.3.0 and see if this still occurs.
Cheers,
Benoit.0 -
this bug was never found before?0
-
if this bug exists in Ice-3.3, why do i update to the version?
i just want to known exactly what bug it's, and does it exist in Ice-3.30 -
As Benoit said, we don't provide free support for earlier versions of Ice. If you want support for an earlier version of Ice, then please mail us at sales@zeroc.com to arrange for a support contract.0