Archived

This forum has been archived. Please start a new discussion on GitHub.

Caught an unknown Exception and program exit!

Ice version : Ice-3.1.0
OS : Redhat Linux AS 4

When my programs run for a while(a few seconds ~ minutes),the process cautch an unkown exception then exit,the call stacks at below,and IceStorm print "terminate called after throwing an instance of 'IceInternal::LocalExceptionWrapper'",what's wrong?,please help me:
_Unwind_Resume
Ice::ConnectionI::sendRequest(IceInternal::BasicStream*, IceInternal::Outgoing*, bool)
IceInternal::Outgoing::invoke()
IceDelegateM::CTC::CTCTrackSim::oneStripSim(CTC::FMStripPrecalData const&, CTC::StripPDI const&, float, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)
IceProxy::CTC::CTCTrackSim::oneStripSim(CTC::FMStripPrecalData const&, CTC::StripPDI const&, float, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)
pace::SmartForm::RawDataHandlerI::send(std::vector<unsigned char, std::allocator<unsigned char> > const&, Ice::Current const&)
pace::RawDataHandler::___send(IceInternal::Incoming&, Ice::Current const&)
pace::RawDataHandler::__dispatch(IceInternal::Incoming&, Ice::Current const&)
IceInternal::Incoming::invoke(IceInternal::Handle<IceInternal::ServantManager> const&)
Ice::ConnectionI::invokeAll(IceInternal::BasicStream&, int, int, unsigned char, IceInternal::Handle<IceInternal::ServantManager> const&, IceInternal::Handle<Ice::ObjectAdapter> const&)
Ice::ConnectionI::message(IceInternal::BasicStream&, IceInternal::Handle<IceInternal::ThreadPool> const&)
IceInternal::ThreadPool::run()
IceInternal::ThreadPool::EventHandlerThread::run()
__clone2

Comments

  • matthew
    matthew NL, Canada
    Most likely you are throwing an exception from a destructor of an object that is destroyed due to an exception. You can find a good explanation of the types of things that lead of terminate being called here:

    http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/cplr163.htm
  • matthew
    matthew NL, Canada
    Sorry, I mis-read your question. So IceStorm itself exits by calling terminate? Can you duplicate this problem readily, or is it something quite rare? Can you get a stack trace of this occurring in IceStorm itself?
  • matthew wrote:
    Sorry, I mis-read your question. So IceStorm itself exits by calling terminate? Can you duplicate this problem readily, or is it something quite rare? Can you get a stack trace of this occurring in IceStorm itself?
    The IceStorm's backtrace stacks is here,And it very strang that when I add trace messages in Outgoing.cpp ,IceInternal::LocalExceptionWrapper::LocalExceptionWrapper,NO MESSAGE PRINT OUT when it throwed.:
    #0  0xa000000000010641 in ?? ()
    #1  0x200000000082b2b0 in raise () from /lib/tls/libc.so.6.1
    #2  0x200000000082db70 in abort () from /lib/tls/libc.so.6.1
    #3  0x200000000068be90 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6
    #4  0x2000000000686b60 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6
    #5  0x2000000000686900 in __gxx_personality_v0 () from /usr/lib/libstdc++.so.6
    #6  0x20000000007b4610 in _Unwind_GetBSP () from /lib/libgcc_s.so.1
    
    #7  0x20000000007b54c0 in _Unwind_Resume () from /lib/libgcc_s.so.1
    #8  0x20000000001a4320 in Ice::ConnectionI::sendRequest () from /usr/local/lib/libIce.so.31
    #9  0x20000000002ceec0 in IceInternal::Outgoing::invoke () from /usr/local/lib/libIce.so.31
    #10 0x2000000000323190 in IceDelegateM::Ice::Object::ice_invoke () from /usr/local/lib/libIce.so.31
    #11 0x200000000031ddf0 in IceProxy::Ice::Object::ice_invoke () from /usr/local/lib/libIce.so.31
    #12 0x200000000031ee60 in IceProxy::Ice::Object::ice_invoke () from /usr/local/lib/libIce.so.31
    #13 0x2000000001fcae30 in IceStorm::OnewayProxy::deliver () from /usr/local/lib/libIceStormService.so.31
    
    #14 0x2000000001fc7bc0 in IceStorm::QueuedProxy::publish () from /usr/local/lib/libIceStormService.so.31
    #15 0x2000000001f4cc20 in IceStorm::OnewaySubscriber::publish () from /usr/local/lib/libIceStormService.so.31
    #16 0x2000000001f66350 in IceStorm::TopicSubscribers::publish () from /usr/local/lib/libIceStormService.so.31
    #17 0x2000000001f71710 in IceStorm::PublisherProxyI::ice_invoke () from /usr/local/lib/libIceStormService.so.31
    #18 0x20000000002bca00 in Ice::BlobjectArray::__dispatch () from /usr/local/lib/libIce.so.31
    #19 0x2000000000206140 in IceInternal::Incoming::invoke () from /usr/local/lib/libIce.so.31
    #20 0x200000000017ea20 in Ice::ConnectionI::invokeAll () from /usr/local/lib/libIce.so.31
    
    #21 0x200000000018abb0 in Ice::ConnectionI::message () from /usr/local/lib/libIce.so.31
    #22 0x20000000003d6980 in IceInternal::ThreadPool::run () from /usr/local/lib/libIce.so.31
    #23 0x20000000003da200 in IceInternal::ThreadPool::EventHandlerThread::run () from /usr/local/lib/libIce.so.31
    #24 0x20000000004d61a0 in startHook () from /usr/local/lib/libIceUtil.so.31
    #25 0x2000000000515d10 in start_thread () from /lib/tls/libpthread.so.0
    #26 0x2000000000972130 in __clone2 () from /lib/tls/libc.so.6.1
    
  • matthew
    matthew NL, Canada
    Apparently its not too hard for you to duplicate this problem. Can you outline how you are doing it? A complete self-contained example which duplicates this problem would help us fix the problem much quicker.
  • bernard
    bernard Jupiter, FL
    If you could reproduce this crash with a debug build, the stack trace would give more info!

    Thanks,
    Bernard
  • bernard wrote:
    If you could reproduce this crash with a debug build, the stack trace would give more info!

    Thanks,
    Bernard
    I'm trying to reproduce it.
  • I found that when Ice build without "OPTIMIZE=yes" option ,all test case is ok, otherwise the "test/IceStorm/fedoration" failed with the fellow errors:
    starting icestorm service... ok
    creating topics... ok
    linking topics... ok
    starting subscriber... ok
    checking subscriber lockfile creation... ok
    starting publisher... ok
    terminate called after throwing an instance of 'IceInternal::LocalExceptionWrapper'
    sh: line 1:  7056 Aborted ../../../bin/icebox --Ice.Default.Host=127.0.0.1 --Ice.PrintProcessId --Ice.PrintAdapterReady --Ice.NullHandleAbort --Ice.Warn.Connections --Ice.ServerIdleTime=30 --Ice.ThreadPool.Server.Size=1 --Ice.ThreadPool.Server.SizeMax=3 --Ice.ThreadPool.Server.SizeWarn=0 --IceBox.ServiceManager.Endpoints="default -p 12010" --Ice.Default.Locator= --IceBox.Service.IceStorm=IceStormService,31:createIceStorm --IceStorm.TopicManager.Endpoints="default -p 12011" --IceStorm.Publish.Endpoints="default" --IceBox.PrintServicesReady=IceStorm --Freeze.DbEnv.IceStorm.DbHome=../../../test/IceStorm/federation/db 2>&1
    ../../../test/IceStorm/federation/publisher: warning: connection exception:
    TcpTransceiver.cpp:217: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:40052
    remote address = 127.0.0.1:12011
    ../../../test/IceStorm/federation/publisher: warning: connection exception:
    TcpTransceiver.cpp:217: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:40053
    remote address = 127.0.0.1:40046
    Network.cpp:669: Ice::ConnectionRefusedException:
    connection refused: Connection refused
    
    
    I also catch that only src/Ice/Outgoing.cpp can not work under "OPTIMIZE=yes" mode.
    But It's very strang that this test case is all fine sometimes,it often failed after 2~3 success.
  • matthew
    matthew NL, Canada
    What version of gcc are you using on that system? Did you alter the default optimize flags?
  • matthew wrote:
    What version of gcc are you using on that system? Did you alter the default optimize flags?
    The gcc version is 3.4.3 on Redhat AS 4 update 1.
    Ice's optimize option is kept default:-O3 -DNDEBUG.But the Hardware is IA64, is it a problem about the IA64 architecture?
  • marc
    marc Florida
    I'm afraid we cannot help you with this problem. We do not support IA64, nor do we have any hardware where we could try to reproduce this problem. However, the fact that it works with different compilation settings, and also works fine on other platforms, indicates that there is a bug in GCC for IA64.
  • dwayne
    dwayne St. John's, Newfoundland
    The gcc version is 3.4.3 on Redhat AS 4 update 1.
    Ice's optimize option is kept default:-O3 -DNDEBUG.But the Hardware is IA64, is it a problem about the IA64 architecture?

    You might want to try changing the optimize level to -O2. You would need to edit config/Make.rules.Linux and replace all occurrences of -O3.