[ https://issues.apache.org/jira/browse/IGNITE-16672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vyacheslav Koptilin updated IGNITE-16672: ----------------------------------------- Description: The following exception was observed when the user tried to re-create a cache: {noformat} [2022-03-10 18:37:09,221][ERROR][exchange-worker-#54%persistence.IgnitePdsNodeJoinWithCachesStopping0%][GridDhtPartitionsExchangeFuture] Failed to initialize cache(s) (will try to rollback) [exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=3, minorTopVer=3], discoEvt=DiscoveryCustomEvent [customMsg=DynamicCacheChangeBatch [id=7dae9747f71-d5048bee-4b2a-43b1-9c74-1a3b770d4bbf, reqs=ArrayList [DynamicCacheChangeRequest [cacheName=default, hasCfg=true, nodeId=8ff88687-66f9-430b-a897-79919c900002, clientStartOnly=false, stop=false, destroy=false, disabledAfterStart=false]], exchangeActions=ExchangeActions [startCaches=[default], stopCaches=null, startGrps=[default], stopGrps=[], resetParts=null, stateChangeRequest=null], startCaches=false], affTopVer=AffinityTopologyVersion [topVer=3, minorTopVer=3], super=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=8ff88687-66f9-430b-a897-79919c900002, consistentId=8ff88687-66f9-430b-a897-79919c900002, addrs=ArrayList [127.0.0.1], sockAddrs=HashSet [/127.0.0.1:0], discPort=0, order=3, intOrder=3, lastExchangeTime=1646926627977, loc=false, ver=2.13.0#20220310-sha1:00000000, isClient=true], topVer=3, msgTemplate=null, span=o.a.i.i.processors.tracing.NoopSpan@763eacc8, nodeId8=93bba3d6, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1646926628700]], nodeId=8ff88687, evt=DISCOVERY_CUSTOM_EVT], caches=[o.a.i.i.processors.cache.ExchangeActions$CacheGroupActionData@7699c2c7]] class org.apache.ignite.IgniteCheckedException: Failed to get page store for the given cache ID (cache has not been started): 1544803905 at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getStore(FilePageStoreManager.java:1423) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageReadWriteManagerImpl.read(PageReadWriteManagerImpl.java:66) at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.read(FilePageStoreManager.java:603) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:913) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:732) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:713) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.getOrAllocateCacheMetas(GridCacheOffheapManager.java:1106) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.initDataStructures(GridCacheOffheapManager.java:193) at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.start(IgniteCacheOffheapManagerImpl.java:197) at org.apache.ignite.internal.processors.cache.CacheGroupContext.start(CacheGroupContext.java:1080) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCacheGroup(GridCacheProcessor.java:2560) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.getOrCreateCacheGroupContext(GridCacheProcessor.java:2241) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:2048) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1982) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$55a0e703$1(GridCacheProcessor.java:1857) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCachesIfPossible$16(GridCacheProcessor.java:1827) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:1854) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCachesIfPossible(GridCacheProcessor.java:1825) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.processCacheStartRequests(CacheAffinitySharedManager.java:999) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:885) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:1471) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:972) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:3366) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:3197) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) at java.lang.Thread.run(Thread.java:748) {noformat} The following scenario results in the mentioned exception: - user starts a new cache on the topology version _X_, and for some reason the start takes a significant amount of time - at the same time, the user tries to stop the cache with the same name, then starts it, stops it and starts it again. The problem is that _ClusterCachesInfo_ removed the required cache descriptor and PME on version _X_ cannot be successfully finished. was: The following exception was observed when the user tried to re-create a cache: {noformat} 2022-02-07 16:22:48.419 [exchange-worker-#228] INFO o.a.ignite.internal.exchange.time - Started exchange init [topVer=AffinityTopologyVersion [topVer=50, minorTopVer=4], crd=false, evt=DISCOVERY_CUSTOM_EVT, evtNode=34f488fb-20bd-4d58-942a-61705f452b9d, customEvt=DynamicCacheChangeBatch [id=91d01a4de71-17931425-a2c1-4a3d-a3de-88a0922f8802, reqs=ArrayList [DynamicCacheChangeRequest [cacheName=SQL_PUBLIC_USERPUBCATEGORYMAPPING, hasCfg=true, nodeId=34f488fb-20bd-4d58-942a-61705f452b9d, clientStartOnly=false, stop=false, destroy=false, disabledAfterStartfalse]], exchangeActions=ExchangeActions [startCaches=[SQL_PUBLIC_USERPUBCATEGORYMAPPING], stopCaches=null, startGrps=[SQL_PUBLIC_USERPUBCATEGORYMAPPING], stopGrps=[], resetParts=null, stateChangeRequest=null], startCaches=false], allowMerge=false, exchangeFreeSwitch=false] 2022-02-07 16:22:48.425 [exchange-worker-#228] WARN o.a.i.i.p.cache.GridCacheProcessor - Cache can not be started : cache=SQL_PUBLIC_USERPUBCATEGORYMAPPING 2022-02-07 16:22:48.426 [exchange-worker-#228] ERROR o.a.i.i.p.c.d.d.p.GridDhtPartitionsExchangeFuture - Failed to initialize cache(s) (will try to rollback) [exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=50, minorTopVer=4], discoEvt=DiscoveryCustomEvent [customMsg=DynamicCacheChangeBatch [id=91d01a4de71-17931425-a2c1-4a3d-a3de-88a0922f8802, reqs=ArrayList [DynamicCacheChangeRequest [cacheName=SQL_PUBLIC_USERPUBCATEGORYMAPPING, hasCfg=true, nodeId=34f488fb-20bd-4d58-942a-61705f452b9d, clientStartOnly=false, stop=false, destroy=false, disabledAfterStartfalse]], exchangeActions=ExchangeActions [startCaches=[SQL_PUBLIC_USERPUBCATEGORYMAPPING], stopCaches=null, startGrps=[SQL_PUBLIC_USERPUBCATEGORYMAPPING], stopGrps=[], resetParts=null, stateChangeRequest=null], startCaches=false], affTopVer=AffinityTopologyVersion [topVer=50, minorTopVer=4], super=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=34f488fb-20bd-4d58-942a-61705f452b9d, consistentId=ReportServer-ad69509b-7b83-4bb7-afe4-fa5c3363a646, addrs=ArrayList [10.237.179.33, 127.0.0.1], sockAddrs=HashSet [guerlpatvp004.fg.rbc.com/10.237.179.33:0, /127.0.0.1:0], discPort=0, order=44, intOrder=32, lastExchangeTime=1644244747185, loc=false, ver=8.7.42#20211223-sha1:d06f4211, isClient=true], topVer=50, msgTemplate=null, nodeId8=3736aba2, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1644250844322]], nodeId=34f488fb, evt=DISCOVERY_CUSTOM_EVT], caches=[o.a.i.i.processors.cache.ExchangeActions$CacheGroupActionData@4f39ff02]] org.apache.ignite.IgniteCheckedException: Failed to get page store for the given cache ID (cache has not been started): 3053635 at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getStore(FilePageStoreManager.java:1085) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageReadWriteManagerImpl.read(PageReadWriteManagerImpl.java:65) at org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.read(FilePageStoreManager.java:519) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:901) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:720) at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:701) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.getOrAllocateCacheMetas(GridCacheOffheapManager.java:1077) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.initDataStructures(GridCacheOffheapManager.java:188) at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.start(IgniteCacheOffheapManagerImpl.java:197) at org.apache.ignite.internal.processors.cache.CacheGroupContext.start(CacheGroupContext.java:1111) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCacheGroup(GridCacheProcessor.java:2455) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.getOrCreateCacheGroupContext(GridCacheProcessor.java:2158) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:1966) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1900) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$55a0e703$1(GridCacheProcessor.java:1775) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCachesIfPossible$14(GridCacheProcessor.java:1745) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:1772) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCachesIfPossible(GridCacheProcessor.java:1743) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.processCacheStartRequests(CacheAffinitySharedManager.java:1023) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:909) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:1463) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:970) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:3374) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:3199) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) at java.base/java.lang.Thread.run(Thread.java:829) {noformat} The following scenario results in the mentioned exception: - user starts a new cache on the topology version _X_, and for some reason the start takes a significant amount of time - at the same time, the user tries to stop the cache with the same name, then starts it, stops it and starts it again. The problem is that _ClusterCachesInfo_ removed the required cache descriptor and PME on version _X_ cannot be successfully finished. > Attempt to re-create a cache with the same name may lead to error on getting > corresponding page store > ----------------------------------------------------------------------------------------------------- > > Key: IGNITE-16672 > URL: https://issues.apache.org/jira/browse/IGNITE-16672 > Project: Ignite > Issue Type: Bug > Components: cache > Reporter: Vyacheslav Koptilin > Assignee: Vyacheslav Koptilin > Priority: Major > > The following exception was observed when the user tried to re-create a cache: > {noformat} > [2022-03-10 > 18:37:09,221][ERROR][exchange-worker-#54%persistence.IgnitePdsNodeJoinWithCachesStopping0%][GridDhtPartitionsExchangeFuture] > Failed to initialize cache(s) (will try to rollback) > [exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=3, > minorTopVer=3], discoEvt=DiscoveryCustomEvent > [customMsg=DynamicCacheChangeBatch > [id=7dae9747f71-d5048bee-4b2a-43b1-9c74-1a3b770d4bbf, reqs=ArrayList > [DynamicCacheChangeRequest [cacheName=default, hasCfg=true, > nodeId=8ff88687-66f9-430b-a897-79919c900002, clientStartOnly=false, > stop=false, destroy=false, disabledAfterStart=false]], > exchangeActions=ExchangeActions [startCaches=[default], stopCaches=null, > startGrps=[default], stopGrps=[], resetParts=null, stateChangeRequest=null], > startCaches=false], affTopVer=AffinityTopologyVersion [topVer=3, > minorTopVer=3], super=DiscoveryEvent [evtNode=TcpDiscoveryNode > [id=8ff88687-66f9-430b-a897-79919c900002, > consistentId=8ff88687-66f9-430b-a897-79919c900002, addrs=ArrayList > [127.0.0.1], sockAddrs=HashSet [/127.0.0.1:0], discPort=0, order=3, > intOrder=3, lastExchangeTime=1646926627977, loc=false, > ver=2.13.0#20220310-sha1:00000000, isClient=true], topVer=3, > msgTemplate=null, span=o.a.i.i.processors.tracing.NoopSpan@763eacc8, > nodeId8=93bba3d6, msg=null, type=DISCOVERY_CUSTOM_EVT, > tstamp=1646926628700]], nodeId=8ff88687, evt=DISCOVERY_CUSTOM_EVT], > caches=[o.a.i.i.processors.cache.ExchangeActions$CacheGroupActionData@7699c2c7]] > class org.apache.ignite.IgniteCheckedException: Failed to get page store for > the given cache ID (cache has not been started): 1544803905 > at > org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getStore(FilePageStoreManager.java:1423) > at > org.apache.ignite.internal.processors.cache.persistence.pagemem.PageReadWriteManagerImpl.read(PageReadWriteManagerImpl.java:66) > at > org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.read(FilePageStoreManager.java:603) > at > org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:913) > at > org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:732) > at > org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.acquirePage(PageMemoryImpl.java:713) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.getOrAllocateCacheMetas(GridCacheOffheapManager.java:1106) > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.initDataStructures(GridCacheOffheapManager.java:193) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.start(IgniteCacheOffheapManagerImpl.java:197) > at > org.apache.ignite.internal.processors.cache.CacheGroupContext.start(CacheGroupContext.java:1080) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCacheGroup(GridCacheProcessor.java:2560) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.getOrCreateCacheGroupContext(GridCacheProcessor.java:2241) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:2048) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1982) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$55a0e703$1(GridCacheProcessor.java:1857) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCachesIfPossible$16(GridCacheProcessor.java:1827) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:1854) > at > org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCachesIfPossible(GridCacheProcessor.java:1825) > at > org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.processCacheStartRequests(CacheAffinitySharedManager.java:999) > at > org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:885) > at > org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:1471) > at > org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:972) > at > org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:3366) > at > org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:3197) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) > at java.lang.Thread.run(Thread.java:748) > {noformat} > The following scenario results in the mentioned exception: > - user starts a new cache on the topology version _X_, and for some reason > the start takes a significant amount of time > - at the same time, the user tries to stop the cache with the same name, > then starts it, stops it and starts it again. > The problem is that _ClusterCachesInfo_ removed the required cache descriptor > and PME on version _X_ cannot be successfully finished. -- This message was sent by Atlassian Jira (v8.20.1#820001)