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

Dmitriy Govorukhin commented on IGNITE-8684:
--------------------------------------------

[~agoncharuk] Agree, but I have a question. As far as I know, we should change 
partition state on local node only on the real exchange, a case when exchangeId 
null it is refreshPartitions, so maybe we can move for loop upder if 
(exchangeVer!=null)?

{code}
                if (exchangeVer != null &&nodeMap != null && 
grp.persistenceEnabled() && readyTopVer.initialized()) {
                    for (Map.Entry<Integer, GridDhtPartitionState> e : 
nodeMap.entrySet()) {
                        int p = e.getKey();
                        GridDhtPartitionState state = e.getValue();

                        if (state == OWNING) {
                            GridDhtLocalPartition locPart = locParts.get(p);

                            assert locPart != null : grp.cacheOrGroupName();

                            if (locPart.state() == MOVING) {
                                boolean success = locPart.own();

                                assert success : locPart;

                                changed |= success;
                            }
                        }
                        else if (state == MOVING) {
                            boolean haveHistory = !partsToReload.contains(p);

                            rebalancePartition(p, haveHistory);
   
                             changed = true;
                        }
                    }
                }

{code}

> Partition state exchange during rebalance continues to keep sending state 
> messages (single,full) in loop even if no changes in partition states
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-8684
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8684
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexei Scherbakov
>            Assignee: Dmitriy Govorukhin
>            Priority: Major
>             Fix For: 2.7
>
>
> This is due to invalid "changed" state computation in
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl#update(org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion,
>  
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionFullMap,
>  
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.CachePartitionFullCountersMap,
>  java.util.Set<java.lang.Integer>, 
> org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion)



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

Reply via email to