[
https://issues.apache.org/jira/browse/IGNITE-11624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16921393#comment-16921393
]
Ignite TC Bot commented on IGNITE-11624:
----------------------------------------
{panel:title=Branch: [pull/6365/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *--> Run :: All*
Results|https://ci.ignite.apache.org/viewLog.html?buildId=4561343&buildTypeId=IgniteTests24Java8_RunAll]
> 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
> Priority: Major
> Fix For: 2.8
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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
(v8.3.2#803003)