Andrey Davydov created IGNITE-12861:
---------------------------------------

             Summary: Persistent data become unavailable on data region 
settings chage
                 Key: IGNITE-12861
                 URL: https://issues.apache.org/jira/browse/IGNITE-12861
             Project: Ignite
          Issue Type: Bug
          Components: cache, general
    Affects Versions: 2.7.6
            Reporter: Andrey Davydov


We have Ignite data directory from system with following data region 
configuration:

 

                        <bean 
class="org.apache.ignite.configuration.DataRegionConfiguration">

                            <property name="name" value="myPersistDataRegion"/>

                            <property name="persistenceEnabled" value="true"/>

                           

                            <property name="initialSize" 
value="${config.node.memory.initial}"/>

                            <property name="maxSize" 
value="${config.node.memory.max}"/>                           

            

                            <property name="pageEvictionMode" value="DISABLED"/>

                            <property name="metricsEnabled" value="true"/>

                        </bean>

 

When we update configuration to:

 

                        <bean 
class="org.apache.ignite.configuration.DataRegionConfiguration">

                            <property name="name" value="myPersistDataRegion"/>

                            <property name="persistenceEnabled" value="true"/>

                            

                            <property name="initialSize" 
value="${config.node.memory.initial}"/>

                            <property name="maxSize" 
value="${config.node.memory.max}"/>                           

                            <property name="evictionThreshold" 
value="${config.node.memory.evict.threshold}"/>

 

                            <property name="pageEvictionMode" 
value="RANDOM_2_LRU"/>

                            <property name="metricsEnabled" value="true"/>

                        </bean>

 

And restart (exactly same system. Difference only in data region config) we got 
following exception. When we change configuration back, everything works OK and 
all data present.

If there is any way to access data from old files with new settings? 

Please update documents and describe which setting for data region may be tuned 
when data already exists and which settings must not be changed.

 

org.apache.ignite.IgniteException: Runtime failure on bounds: [lower=SearchRow 
[key=null, hash=0, cacheId=2077719173], upper=SearchRow [key=null, hash=0, 
cacheId=2077719173]]

        at 
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:48)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.advance(GridCacheQueryManager.java:2996)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.onHasNext(GridCacheQueryManager.java:2965)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
ru.exampl.data.appl.service.business.ModelService.findRunningModels(ModelService.java:945)
 ~[appl.jar:?]

        at 
ru.exampl.data.appl.service.business.LocalEnvironmentService.initializeEnvironment(LocalEnvironmentService.java:192)
 ~[appl.jar:?]

        at 
ru.exampl.data.appl.service.business.LocalEnvironmentService.afterIgniteSet(LocalEnvironmentService.java:125)
 ~[appl.jar:?]

        at 
ru.exampl.data.appl.service.AppServiceNew.lambda$execInner$2(AppServiceNew.java:228)
 ~[appl.jar:?]

        at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) 
~[?:1.8.0_242]

        at 
ru.exampl.data.appl.service.AppServiceNew.execInner(AppServiceNew.java:228) 
~[appl.jar:?]

        at 
ru.exampl.data.appl.service.AppServiceNew.execInLock(AppServiceNew.java:181) 
~[appl.jar:?]

        at 
ru.exampl.data.appl.service.AppServiceNew.execute(AppServiceNew.java:139) 
[appl.jar:?]

        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor$3.run(GridServiceProcessor.java:1394)
 [ignite-core-2.7.6.jar:2.7.6]

        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_242]

        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_242]

        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]

Caused by: 
org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
 Runtime failure on bounds: [lower=SearchRow [key=null, hash=0, 
cacheId=2077719173], upper=SearchRow [key=null, hash=0, cacheId=2077719173]]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1016)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:988)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2923)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2894)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2888)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2876)
 ~[ignite-core-2.7.6.jar:2.7.6]

       at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.cursor(GridCacheOffheapManager.java:2075)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6.onHasNext(IgniteCacheOffheapManagerImpl.java:968)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
 ~[ignite-core-2.7.6.jar:2.7.6]

        ... 16 more

Caused by: java.lang.IllegalArgumentException: Invalid object type: 0

        at 
org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessorImpl.toKeyCacheObject(IgniteCacheObjectProcessorImpl.java:166)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.toKeyCacheObject(CacheObjectBinaryProcessorImpl.java:865)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.readFullRow(CacheDataRowAdapter.java:333)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:167)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:108)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.tree.DataRow.<init>(DataRow.java:55)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.tree.CacheDataRowStore.dataRow(CacheDataRowStore.java:92)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.tree.CacheDataTree.getRow(CacheDataTree.java:200)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.tree.CacheDataTree.getRow(CacheDataTree.java:49)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$ForwardCursor.fillFromBuffer0(BPlusTree.java:5515)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.fillFromBuffer(BPlusTree.java:5283)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.init(BPlusTree.java:5208)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetCursor.notFound(BPlusTree.java:2902)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Search.run0(BPlusTree.java:309)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:5618)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Search.run(BPlusTree.java:274)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:5603)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.readPage(PageHandler.java:159)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.DataStructure.read(DataStructure.java:334)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.findDown(BPlusTree.java:1312)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doFind(BPlusTree.java:1279)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.access$8700(BPlusTree.java:90)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.find(BPlusTree.java:5292)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1008)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:988)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2923)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2894)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2888)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2876)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.cursor(GridCacheOffheapManager.java:2075)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6.onHasNext(IgniteCacheOffheapManagerImpl.java:968)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
 ~[ignite-core-2.7.6.jar:2.7.6]

        at 
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
 ~[ignite-core-2.7.6.jar:2.7.6]

        ... 16 more



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

Reply via email to