[jira] [Created] (IGNITE-12861) Persistent data become unavailable on data region settings chage

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-12861) Persistent data become unavailable on data region settings chage

Anton Vinogradov (Jira)
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)