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

Ivan Pavlukhin commented on IGNITE-12549:
-----------------------------------------

[~macrergate], I believe we can include it into 2.8.1 but as far as I know 
neither 2.8.1 branch was created neither scope was discussed. We cannot put fix 
version 2.8.1 immediately here because RESOLVED ticket status can be misleading 
if the patch will not appear in 2.8.1 by some reason. It seems that we can add 
2.8.1 fix version only when the fix will be merged to 2.8.1 branch.

> Scan query/iterator on a replicated cache may get wrong results
> ---------------------------------------------------------------
>
>                 Key: IGNITE-12549
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12549
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.7.6
>            Reporter: Sergey Kosarev
>            Assignee: Sergey Kosarev
>            Priority: Critical
>             Fix For: 2.9
>
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> Case 1
> 1. start server node 1
> 2. create and fill replicated cache with RebalanceMode.Async (as by default)
> 3. start servr node 2 
> 4. immediately execute scan query  on the replicated cache((or just iterate 
> the cache)) on the node 2
> It can get empty or partial results. (if rebalance on node 2 is finished)
> Case 2
> 1. start server node 1
> 2. create and fill replicated cache with RebalanceMode.Async (as by default)
> 3. start client node 2
> 4. start server node 3 
> 5. immediately execute scan query  on the replicated cache((or just iterate 
> the cache)) on the client node 2
> It can get empty or partial results. (if rebalance on node 2 is not finished 
> and query is mapped on the node 2)
> It looks like problem in the 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter#nodes()
>             case REPLICATED:
>                 if (prj != null || part != null)
>                     return nodes(cctx, prj, part);
>                 if (cctx.affinityNode())
>                     return *Collections.singletonList(cctx.localNode())*;
>                 Collection<ClusterNode> affNodes = nodes(cctx, null, null);
>                 return affNodes.isEmpty() ? affNodes : 
> *Collections.singletonList(F.rand(affNodes))*;
>             case PARTITIONED:
>                 return nodes(cctx, prj, part);
>  which is executed in 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter#executeScanQuery.
> If executed on a just started node it obviously returns the local node 
> disregarding was it rebalanced or not.
> If executed on a client it returns a random affinity node, so it also can be 
> not yet rebalanced node.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to