You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Amelchev Nikita (JIRA)" <ji...@apache.org> on 2019/03/25 11:40:00 UTC
[jira] [Created] (IGNITE-11624) Discovery SPI: The client can
handle events from the previous cluster after reconnect.
Amelchev Nikita created IGNITE-11624:
----------------------------------------
Summary: Discovery SPI: The client can handle events from the previous cluster after reconnect.
Key: IGNITE-11624
URL: https://issues.apache.org/jira/browse/IGNITE-11624
Project: Ignite
Issue Type: Bug
Reporter: Amelchev Nikita
Assignee: Amelchev Nikita
Fix For: 2.8
Discovery has a queue for events. It's processed by event thread. If we hold up event processing using a listener on the client side and restarts cluster - the client will reconnect. After it reconnects it will continue processing events from the previous cluster.
This behavior produces bugs in MvccProcessor (IGNITE-11460) and [hanging of partitions exchange|https://github.com/NSAmelchev/ignite/pull/26/files] on the client side. The reason is that discovery notifies components about reconnection in the notifier thread by calling the 'onLocalJoin' method. After it (or at the same time), components can process events from the previous cluster in their listeners and break their logic.
The order of events is fine - after processing previous cluster events
- it will process client disconnection/reconnection and new cluster
events.
The possible solution is to fix discovery logic. Make a guarantee that no one event from the
previous cluster will be processed after the client reconnect
('onLocalJoin' called). For example, wait for the client disconnect
event will be processed in the discovery event thread. Then start
attempt to reconnect.
[Dev-list discussion.|http://apache-ignite-developers.2346864.n4.nabble.com/The-client-can-handle-events-from-the-previous-cluster-after-reconnect-td41392.html] [Reproducer.|https://github.com/NSAmelchev/ignite/pull/26/files]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)