Details
-
Type: Bug
-
Status: Closed
-
Priority: Critical
-
Resolution: Duplicate
-
Affects Version/s: 1.6.1
-
Fix Version/s: 1.6.3
-
Component/s: Networking
Description
The reconnection has a check shouldReconnect(). The function rely on the flag "!ioSession.isConnected()". But when the Session object disconnect its connection by
responder.disconnect();
setResponder(null);
The disconnect() itself will cause the close future set "closing = true". So there is a gap. Session object believe its connection is closed. While because of some reason the close isn't done, just be marked. So the background reconnection process will be fooled and won't be able to rebuild the connection. The Session timeout check routine will also just skip check since its responder is null by this check
// Return if we are not connected
if (!hasResponder())
The effect is the connection won't be back after the following exception log
Disconnecting: Socket exception : java.io.IOException: Connection reset by peer