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)