You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Timonin (Jira)" <ji...@apache.org> on 2022/09/08 11:51:00 UTC

[jira] [Created] (IGNITE-17656) Race in DistributedProcess#onSingleNodeMessageReceived

Maksim Timonin created IGNITE-17656:
---------------------------------------

             Summary: 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


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)