Archived

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

ICE Client communicator destroy() waiting 60s to close tcp connection

Anonymous777222
edited August 2021 in Comments

I am facing an issue wherein the destroy() function takes a lot of time ( 60+s) in our client ( Windows ).
From the network trace it looks like that the call is waiting 60s to close a tcp connection ( Ice.Override.CloseTimeout = 1 alleviates this delay).

The server ( Linux ) and client ( Windows ) open the connection, and after transferring data, the server registers that connection is closed, but for the client it doesn't close until 60s later.

The doesn't happen for all tcp connections, and happens only for a small number of connections. There are no other errors, and all request seems to be working fine apart from the occasional 60s delay.

What could be preventing the graceful connection termination?

Comments

  • benoit
    benoit Rennes, France

    Hi,

    This can happen if your client is still dispatching invocations from the server. Is your client using bi-directional connections? If it is, are you sure that the dispatch for the server invocations on the bi-directional connections are all completed in the client?

    If this doesn't explain it, could you try to reproduce it with a small test case and provide the network and protocol tracing of the client that hangs?

    Cheers,
    Benoit