[ 
https://issues.apache.org/jira/browse/IGNITE-12591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Pavlukhin updated IGNITE-12591:
------------------------------------
    Description: 
Apparently scan query {{ScanQuery}} (without specifying explicit partition) 
does not reserve partitions. Consequently when there is a partition movement 
(unstable topology, e.g. new node joins the cluster) query can read from an 
invalid (e.g. already destroyed) partition.

It is easy to catch "java.lang.IllegalStateException: Tree is being 
concurrently destroyed". As it is a consequence of a race condition other 
exceptions might be possible. See attached reproducer 
[^ScanQueryTopologyMappingTest.java].

One possible solution here is to reserve partitions properly. Other approach is 
to consider some optimistic strategy.

  was:
Apparently scan query {{ScanQuery}} (without specifying explicit partition) 
does not reserve partitions. Consequently when there is a partition movement 
(unstable topology, e.g. new node joins the cluster) query can read from an 
invalid (e.g. already destroyed) partition.

It is easy to catch "java.lang.IllegalStateException: Tree is being 
concurrently destroyed". As it is a consequence of a race condition other 
exceptions might be possible. See attached reproducer.

One possible solution here is to reserve partitions properly. Other approach is 
to consider some optimistic strategy.


> Scan query scans invalid partitions on unstable topology
> --------------------------------------------------------
>
>                 Key: IGNITE-12591
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12591
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.8
>            Reporter: Ivan Pavlukhin
>            Priority: Major
>         Attachments: ScanQueryTopologyMappingTest.java
>
>
> Apparently scan query {{ScanQuery}} (without specifying explicit partition) 
> does not reserve partitions. Consequently when there is a partition movement 
> (unstable topology, e.g. new node joins the cluster) query can read from an 
> invalid (e.g. already destroyed) partition.
> It is easy to catch "java.lang.IllegalStateException: Tree is being 
> concurrently destroyed". As it is a consequence of a race condition other 
> exceptions might be possible. See attached reproducer 
> [^ScanQueryTopologyMappingTest.java].
> One possible solution here is to reserve partitions properly. Other approach 
> is to consider some optimistic strategy.



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

Reply via email to