Results 1 to 6 of 6

Thread: Exception while async call timeout

  1. #1
    Andrew S is offline Registered User
    Name: Andrew Solodovnikov
    Organization: Moscow State technical University
    Project: simple grid-like system
    Join Date
    Feb 2008
    Posts
    36

    Exception while async call timeout

    Hello.

    We are trying to make some sort of a sessions (distributed GC), so we made session keeper, that sends "heart beat" to the remote side by calling proxy "refresh" AMI method .
    When we kill remote process, or break down the network connection, sometimes (not always!) we see this messages:

    IceUtil::Timer::run(): uncaught exception:
    TcpTransceiver.cpp:158: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    Assertion failed: !__os, file OutgoingAsync.cpp, line 76

    or

    IceUtil::Timer::run(): uncaught exception:
    TcpTransceiver.cpp:191: Ice::ConnectionLostException:
    connection lost: WSAECONNRESET
    Assertion failed: !__os, file OutgoingAsync.cpp, line 76

    BTW, we redirect ice logger to ours logging framework, so all other messages goes directly to our log, except this one - this goes to the console.

    While investigating this, we have seen, that this happens in such pattern: make async call and before response (we should fill server thread pool, o'coz, to do that) break down the network connection. So async call never completes and never causes exception. It just do nothing!
    This behaviour is really disappoints us, may be you can bring some light on this situation? Thanks!

    Ice version: 3.3.0
    System: Windows XP, 2003, 2008
    Compiler: VS 2008


    --
    Andrew Solodovnikov
    Last edited by Andrew S; 10-23-2008 at 09:40 AM.

  2. #2
    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 Andrew,

    Unfortunately, it looks like you found a bug

    After a quick investigation, it appears that this can only occur if you configure retry intervals with Ice.RetryIntervals and if the connection to the server is lost during the connection establishment of the retry. Can you confirm that you're setting this property with non zero retry intervals?

    We'll look into fixing this ASAP.

    Cheers,
    Benoit.

  3. #3
    Andrew S is offline Registered User
    Name: Andrew Solodovnikov
    Organization: Moscow State technical University
    Project: simple grid-like system
    Join Date
    Feb 2008
    Posts
    36
    Quote Originally Posted by benoit View Post
    Hi Andrew,

    Unfortunately, it looks like you found a bug

    After a quick investigation, it appears that this can only occur if you configure retry intervals with Ice.RetryIntervals and if the connection to the server is lost during the connection establishment of the retry. Can you confirm that you're setting this property with non zero retry intervals?

    We'll look into fixing this ASAP.

    Cheers,
    Benoit.
    Benoit, thanks for answer.
    Yes, you are right - i set up retry intervals. But (possible - i didn't do any investigation) same things happens when retry intervals are set to -1. We see no any response (or exception) in some situations, f.e., when network goes down... If i will be able to reproduce it - i will let you know about it...

    Thanks!

  4. #4
    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,

    I've posted a patch for this bug here. Thanks for the report!

    Cheers,
    Benoit.

  5. #5
    Andrew S is offline Registered User
    Name: Andrew Solodovnikov
    Organization: Moscow State technical University
    Project: simple grid-like system
    Join Date
    Feb 2008
    Posts
    36
    Benoit, thanks for your reply and fix! We will try it and report results.

    BTW, we found another strange behaviour. We had written special service locator, that tries to establish connection with the remote host (proxy::ice_getConnection). But when the remote server is under heavy load, call to the ice_getConnection just hangs - it waits for infinite time in the Monitor::wait. When we tried to connect to the remote host by telnet - it connects and sends/receives binary data. Very strange.. May be, ice_getConntection not just establish connection, but also make some handshake actions? I tried to examine ICE sources near that point, but without any success...

    Thanks again!

  6. #6
    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 Andrew,

    Yes, ice_getConnection() establishes the connection and waits for the server to send the connection validation message. It should eventually return once the server accepts the connection and sends this connection validation message. If you suspect a problem with Ice, the best way to investigate it would be to provide us with a small self-compilable test case.

    Cheers,
    Benoit.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Inaccuracy AMI call timeout
    By suds in forum Help Center
    Replies: 4
    Last Post: 10-27-2009, 02:00 PM
  2. how to set timeout for each call?
    By alexnycheung in forum Help Center
    Replies: 2
    Last Post: 07-28-2009, 04:56 PM
  3. How to know it is async call or sync call?
    By alexnycheung in forum Help Center
    Replies: 1
    Last Post: 04-03-2009, 04:14 PM
  4. Replies: 4
    Last Post: 01-08-2009, 10:07 PM
  5. inaccurate timeout in ice call
    By suds in forum Help Center
    Replies: 2
    Last Post: 10-14-2008, 05:17 AM

Posting Permissions

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