[ 
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)

Reply via email to