Semen Boikov created IGNITE-3428:
------------------------------------

             Summary: TcpCommunicationSpi: potential message lost during 
reconnect
                 Key: IGNITE-3428
                 URL: https://issues.apache.org/jira/browse/IGNITE-3428
             Project: Ignite
          Issue Type: Bug
          Components: general
            Reporter: Semen Boikov
            Priority: Critical


Added test reproducing lost message during reconnect: 
IgniteCacheMessageRecoveryIdleConnection. 

It is possible that method 'send' finished, then connection closed, there are 
unacknowledged messages, but communication does not try to reconnect (if there 
are no others messages to be sent to this node).

Looks like there are at least 2 issues:
- 'onDisconnected' checks result of 'clients.remove(id, rmv)' to trigger 
reconnect. this is not saf (e.g. client is removed when session is closed on 
idle timeout)
- 'onDisconnected' checks that messagesFutures() collection is not empty, but 
'onDisconnected' is erroneously called before all futures are polled from 
closing session (GridNioService.AbstractNioClientWorker.close)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to