[
https://issues.apache.org/jira/browse/IGNITE-11204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16760782#comment-16760782
]
Alexey Goncharuk commented on IGNITE-11204:
-------------------------------------------
After allowing the node failed event to be processed by exchange, an assertion
appeared. The cause of the assertion is second call to merge exchanges from
{{onAllReceived}}. If node left event is completing merge phase, need to call
{{finishExchangeOnCoordinator}} rather that {{onAllReceived}} to skip second
merge step.
> Merged partitions exchange future ignores NODE_LEFT/FAILED events for merged
> exchanges
> --------------------------------------------------------------------------------------
>
> Key: IGNITE-11204
> URL: https://issues.apache.org/jira/browse/IGNITE-11204
> Project: Ignite
> Issue Type: Bug
> Reporter: Alexey Goncharuk
> Assignee: Alexey Goncharuk
> Priority: Major
>
> In {{GridDhtPartitionsExchangeFuture#onNodeLeft}} we have the following code:
> {code}
> if (!srvNodes.remove(node)
> return;
> {code}
> The issue is that the {{srvNodes}} collection is created when partition
> exchange future is initialized. After the exchange future is merged, we will
> wait for more nodes to respond. However, since those nodes never added to
> {{srvNodes}}, the event will never be processed and the exchange future will
> hang.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)