[
https://issues.apache.org/jira/browse/IGNITE-17656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17602291#comment-17602291
]
Maksim Timonin commented on IGNITE-17656:
-----------------------------------------
[~NSAmelchev] [~namelchev] thanks for review! Merged to master.
Cherry-picked to 2.14
> Race in DistributedProcess#onSingleNodeMessageReceived
> ------------------------------------------------------
>
> Key: IGNITE-17656
> URL: https://issues.apache.org/jira/browse/IGNITE-17656
> Project: Ignite
> Issue Type: Bug
> Reporter: Maksim Timonin
> Assignee: Maksim Timonin
> Priority: Major
> Fix For: 2.14
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> DistributedProcess#onSingleNodeMessageReceived
> It could be a case when 2 (one of them is the last) messages receives
> simultaneously:
> # Initial state: remaining = \{node0, node1}, singleMsg={}
> # First msg handled, thread stops after releasing the `mux`:
> remaining=\{node0}, singleMsg={}.
> # Second msg handled, thread doesn't stop and: remaining={},
> singleMsg=\{node1}. And finishes process after that.
> # Thread 1 invoked, put message to singleMsg, but process was already
> finished.
>
> Solution is changing both collections (remaining, singleMsg) under the same
> `mux`.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)