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