Results 1 to 3 of 3

Thread: TCP connection timeouts throw exceptions and reconnecting fails

  1. #1
    Squider is offline Registered User
    Name: Jukka Helle
    Organization: SourceMix
    Project: GatherBot
    Join Date
    Feb 2009
    Posts
    1

    TCP connection timeouts throw exceptions and reconnecting fails


  2. #2
    matthew's Avatar
    matthew is offline ZeroC Staff
    Name: Matthew Newhook
    Organization: ZeroC, Inc.
    Project: Internet Communications Engine
    Join Date
    Feb 2003
    Location
    NL, Canada
    Posts
    1,458
    Thanks for reporting the bug. Examining the stack trace I find:

    Code:
    Catchpoint 2 (exception thrown) 
    0xb7770765 in __cxa_throw () from /usr/lib/libstdc++.so.6 
    (gdb) backtrace 
    #0 0xb7770765 in __cxa_throw () from /usr/lib/libstdc++.so.6 
    #1 0xb7e2d9db in Ice::ConnectionI::sendRequest (this=0x82c8fe0, out=0xbfacd0d4, compress=false, response=true) at ConnectionI.cpp:467
    That corresponds to:

    Code:
        if(_exception.get())
        {       
            //  
            // If the connection is closed before we even have a chance
            // to send our request, we always try to send the request
            // again.
            //
            throw LocalExceptionWrapper(*_exception.get(), true);
        }
    Then:

    Code:
    #2 0xb7e329e9 in IceInternal::ConnectionRequestHandler::sendRequest (this=0x82c2468, out=0xbfacd0d4) at ConnectionRequestHandler.cpp:74 
    #3 0xb7ebcb71 in IceInternal::Outgoing::invoke (this=0xbfacd0d4) at Outgoing.cpp:177 
    #4 0x0810194b in IceDelegateM::Murmur::ServerAuthenticator::authenticate (this=0x824e120, name=@0xbfacd37c, pw=@0xbfacd378, newname=@0xbfacd380, groups=@0xbfacd33c, 
    __context=0x0) at Murmur.cpp:7249 
    #5 0x0810f79c in IceProxy::Murmur::ServerAuthenticator::authenticate (this=0x82c3f18, name=@0xbfacd37c, pw=@0xbfacd378, newname=@0xbfacd380, groups=@0xbfacd33c, __ctx=0x0) 
    at Murmur.cpp:5228
    Frame 5 is executing in a code block similar to:

    Code:
            try
            {
                ....
            }
            catch(const ::IceInternal::LocalExceptionWrapper& __ex)
            {
                __handleExceptionWrapperRelaxed(__delBase, __ex, 0, __cnt);
            }
            catch(const ::Ice::LocalException& __ex)
            {
                __handleException(__delBase, __ex, 0, __cnt);
            }
    Obviously, the exception should be caught. If it is not, its a compiler bug.

    What would be most useful would be a test case without all of the murmur infrastructure.

  3. #3
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Hi,

    After some investigation, it turns out that this problem is caused by code built with the GCC -fvisibility=hidden. This is causing exception handling issues as described on the GNU GCC page here: Visibility - GCC Wiki

    Building the Mumble code without this option solves the problem.

    Cheers,
    Benoit.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. what will happen after reconnecting
    By ChenQingQing in forum Help Center
    Replies: 12
    Last Post: 06-15-2006, 06:19 AM
  2. Replies: 2
    Last Post: 01-06-2006, 05:01 PM
  3. what can Monitor::wait() throw?
    By andhow in forum Help Center
    Replies: 4
    Last Post: 02-21-2005, 08:26 AM
  4. TCP connection limit in WinXP SP2
    By mario in forum Help Center
    Replies: 2
    Last Post: 01-27-2005, 05:56 PM
  5. Replies: 2
    Last Post: 10-09-2004, 09:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •