ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ignite TC Bot (Jira)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-11624) Discovery SPI: The client can handle events from the previous cluster after reconnect.
Date Tue, 03 Sep 2019 12:41:00 GMT

    [ 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 *--&gt; Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=4561343&amp;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)

Mime
View raw message