[ 
https://issues.apache.org/jira/browse/IGNITE-7640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16425563#comment-16425563
 ] 

Alexander Menshikov commented on IGNITE-7640:
---------------------------------------------

I'm sorry but I can't do this issue. After strict investigation of tests 
results, I still see failed tests with my PR. And I truly don't understand a 
reason.
I found two type of unclear using of DiscoveryDataClusterState.

*1. Concurrency using*
DiscoveryDataClusterState.transitionRes + 
GridClusterStateProcessor.transitionFuts are working together like a future: 
DiscoveryDataClusterState.transitionRes used for value passing and 
GridClusterStateProcessor.transitionFuts used as a latch.

*2. Serialization*
There is logic based on the fact some fields are `transient` and some other is 
not. It breaks some invariants which I think I see in code (object become 
partly initialized).


But some bugs still here, so maybe there is something else.

I think we should make clear using of DiscoveryDataClusterState before this 
issue became resolvable.

Or maybe someone else will be lucky.

> Refactor DiscoveryDataClusterState to be immutable
> --------------------------------------------------
>
>                 Key: IGNITE-7640
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7640
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: 2.4
>            Reporter: Alexey Goncharuk
>            Assignee: Alexander Menshikov
>            Priority: Major
>             Fix For: 2.5
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to