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?

Comments

  • benoit
    benoit Rennes, France
    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.
  • can you sure it's the bug of ice-3.1.1?
  • benoit
    benoit Rennes, France
    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.
  • this bug was never found before?
  • 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.3
  • matthew
    matthew NL, Canada
    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.