Archived
This forum has been archived. Please start a new discussion on GitHub.
TCP connection timeouts throw exceptions and reconnecting fails
The bug has been discussed here:
https://sourceforge.net/forum/forum.php?thread_id=3047645&forum_id=492606
Might be linked to:
http://www.zeroc.com/forums/help-center/2718-caught-unknown-exception-program-exit.html
https://sourceforge.net/forum/forum.php?thread_id=3047645&forum_id=492606
Might be linked to:
http://www.zeroc.com/forums/help-center/2718-caught-unknown-exception-program-exit.html
0
Comments
-
Thanks for reporting the bug. Examining the stack trace I find:
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: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:#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: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.0 -
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.0