[ 
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)

Reply via email to