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

Maxim Muzafarov commented on IGNITE-12734:
------------------------------------------

[~alex_pl]

Changes look good to me. I think we can proceed with the merge.

> Scan query shutting down the node in some cases
> -----------------------------------------------
>
>                 Key: IGNITE-12734
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12734
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksey Plekhanov
>            Assignee: Aleksey Plekhanov
>            Priority: Blocker
>             Fix For: 2.8.1
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Reproducer:
> {code:java}
> public class CachePartitionEvictionQueryTest extends GridCommonAbstractTest {
>     @Override protected IgniteConfiguration getConfiguration(String name) 
> throws Exception {
>         return super.getConfiguration(name).setDataStorageConfiguration(new 
> DataStorageConfiguration()
>             .setDefaultDataRegionConfiguration(new 
> DataRegionConfiguration().setPersistenceEnabled(true)));
>     }
>     @Override protected FailureHandler getFailureHandler(String 
> igniteInstanceName) {
>         return new StopNodeFailureHandler();
>     }
>     @Test
>     public void testQuery() throws Exception {
>         
> startGrid(getConfiguration(getTestIgniteInstanceName(0)).setConsistentId("1"));
>         grid(0).cluster().active(true);
>         grid(0).cluster().baselineAutoAdjustEnabled(true);
>         grid(0).cluster().baselineAutoAdjustTimeout(0);
>         IgniteCache<Integer, Integer> cache = grid(0).getOrCreateCache(
>             new CacheConfiguration<Integer, 
> Integer>(DEFAULT_CACHE_NAME).setBackups(0)
>                 .setAffinity(new 
> RendezvousAffinityFunction().setPartitions(2)));
>         cache.put(0, 0);
>         cache.put(1, 1);
>         Iterator iter = cache.query(new 
> ScanQuery<>().setPageSize(1)).iterator();
>         iter.next();
>         
> startGrid(getConfiguration(getTestIgniteInstanceName(1)).setConsistentId("0"));
>         awaitPartitionMapExchange();
>         forceCheckpoint(grid(0));
>         iter.next();
>     }
> }
> {code}
> Node fails with the reason:
> {noformat}
> [2020-03-02 
> 15:17:46,663][ERROR][test-runner-#1%cache.CachePartitionEvictionQueryTest%][IgniteTestResources]
>  Critical system error detected. Will be handled accordingly to configured 
> handler [hnd=StopNodeFailureHandler [super=AbstractFailureHandler 
> [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
> SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
> [type=CRITICAL_ERROR, err=class 
> o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
> corrupted [pages(groupId, pageId)=[], msg=Runtime failure on bounds: 
> [lower=null, upper=null]]]]
> class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  B+Tree is corrupted [pages(groupId, pageId)=[], msg=Runtime failure on 
> bounds: [lower=null, upper=null]]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:5927)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1054)
>     at 
> org.apache.ignite.internal.processors.cache.tree.CacheDataTree.find(CacheDataTree.java:164)
>     at 
> org.apache.ignite.internal.processors.cache.tree.CacheDataTree.find(CacheDataTree.java:63)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1021)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2914)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2884)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2878)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2866)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.cursor(GridCacheOffheapManager.java:2560)
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$3.onHasNext(IgniteCacheOffheapManagerImpl.java:937)
>     at 
> org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
>     at 
> org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
>     at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.advance(GridCacheQueryManager.java:3031)
>     at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.onHasNext(GridCacheQueryManager.java:2997)
>     at 
> org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
>     at 
> org.apache.ignite.internal.util.GridCloseableIteratorAdapter.nextX(GridCloseableIteratorAdapter.java:38)
>     at 
> org.apache.ignite.internal.util.lang.GridIteratorAdapter.next(GridIteratorAdapter.java:35)
>     at 
> org.apache.ignite.internal.processors.cache.AutoClosableCursorIterator.next(AutoClosableCursorIterator.java:59)
>     at 
> org.apache.ignite.internal.processors.cache.CachePartitionEvictionQueryTest.testQuery2(CachePartitionEvictionQueryTest.java:78)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>     at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>     at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>     at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest$7.run(GridAbstractTest.java:2090)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.AssertionError: FullPageId [pageId=0001000100000002, 
> effectivePageId=0000000100000002, grpId=1544803905]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:820)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:709)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.DataStructure.acquirePage(DataStructure.java:158)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.acquirePage(BPlusTree.java:5858)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.findLowerUnbounded(BPlusTree.java:974)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1039)
>     ... 28 more
> {noformat}



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

Reply via email to