[
https://issues.apache.org/jira/browse/IGNITE-8286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Belyak updated IGNITE-8286:
-------------------------------------
Description:
1) Create partitioned cache on 2+ nodes cluster
2) Select some partition N, local node should not be OWNER of partition N
3) execute: cache.query(new ScanQuery<>().setLocal(true).setPartition(N))
Expected result:
empty result (probaply with logging smth like "Trying to execute local query
<query> with non local partition N") or even throw exception
Actual result:
executing (with ScanQueryFallbackClosableIterator) query on remote node.
Problem is that we execute local query on remote node.
Same behaviour can be achieved if we get empty node list from
GridCacheQueryAdapter.node() by any reasons, for example - if we run "local"
query from non data node from given cache (see
GridDiscoveryNamager.cacheAffinityNode(ClusterNode node, String cacheName) in
GridcacheQueryAdapter.executeScanQuery()
was:
1) Create partitioned cache on 2+ nodes cluster
2) Select some partition N, local node should not be OWNER of partition N
3) execute: cache.query(new ScanQuery<>().setLocal(true).setPartition(N))
Expected result:
empty result (probaply with logging smth like "Trying to execute local query
<query> with non local partition N") or even throw excedption
Actual result:
executing (with ScanQueryFallbackClosableIterator) query on remote node.
Problem is that we execute local query on remote node.
Same behaviour can be achieved if we get empty node list from
GridCacheQueryAdapter.node() by any reasons, for example - if we run "local"
query from non data node from given cache (see
GridDiscoveryNamager.cacheAffinityNode(ClusterNode node, String cacheName) in
GridcacheQueryAdapter.executeScanQuery()
> ScanQuery ignore setLocal with non local partition
> --------------------------------------------------
>
> Key: IGNITE-8286
> URL: https://issues.apache.org/jira/browse/IGNITE-8286
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.4
> Reporter: Alexander Belyak
> Priority: Major
>
> 1) Create partitioned cache on 2+ nodes cluster
> 2) Select some partition N, local node should not be OWNER of partition N
> 3) execute: cache.query(new ScanQuery<>().setLocal(true).setPartition(N))
> Expected result:
> empty result (probaply with logging smth like "Trying to execute local query
> <query> with non local partition N") or even throw exception
> Actual result:
> executing (with ScanQueryFallbackClosableIterator) query on remote node.
> Problem is that we execute local query on remote node.
> Same behaviour can be achieved if we get empty node list from
> GridCacheQueryAdapter.node() by any reasons, for example - if we run "local"
> query from non data node from given cache (see
> GridDiscoveryNamager.cacheAffinityNode(ClusterNode node, String cacheName) in
> GridcacheQueryAdapter.executeScanQuery()
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)