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

ASF GitHub Bot commented on IGNITE-8405:
----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/ignite/pull/3929


> Sql query may see intermediate results of topology changes and perform 
> mapping incorrectly
> ------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-8405
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8405
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache, sql
>    Affects Versions: 2.4
>            Reporter: Pavel Kovalenko
>            Assignee: Pavel Kovalenko
>            Priority: Major
>             Fix For: 2.5
>
>
> Affected test: IgniteStableBaselineCacheQueryNodeRestartsSelfTest
> Sql query do mapping in following way:
> 1) If there is at least 1 moving partition query will be mapped to current 
> partition owners
> 2) In other case affinity mapping will be used.
> In case of first approach query may see not final partition state if mapping 
> happens during PME. There is "setOwners()" method which does partition 
> movement one-by-one, each time obtaining topology write lock. If query 
> mapping happens in this time it may see that there is some moving partition 
> and performed mapping to OWNING partition which will be moved to MOVING on 
> next "setOwners()" invocation.
> As result we may query from invalid partitions.
> As intermediate solution "setOwners()" method should be refactored in a batch 
> way to perform ALL partitions state changes to MOVING in one operation.
> As general solution query mapping should be revisited, especially 
> "isPreloadingActive" method, to take into account given topology version.



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

Reply via email to