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

Semen Boikov commented on IGNITE-7308:
--------------------------------------

I recall that this is updated in discovery thread since 'registeredCaches'  
(which is stored in ClusterCachesInfo) is also updated in discovery thread. It 
is not possible just move caches.init to exchange, since we need 
'registeredCaches' state at the moment node was started/activated. I think 
correct fix can be save 'registeredCaches' somewhere (e.g. in ExchangeActions) 
and update CacheAffinitySharedManager.caches using this saved state.

> Caches info is updated on cluster change finish message in discovery thread
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-7308
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7308
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.3
>            Reporter: Alexey Goncharuk
>             Fix For: 2.4
>
>
> This leads to an assertion on 'slow' clients when exchange in the cluster 
> finished before exchange on the client:
> {code}
> Exception in thread 
> "exchange-worker-#188%database.IgniteDbBaselineTopologySelfTest14%" 
> java.lang.AssertionError: CacheGroupDescriptor [grpId=94416770, grpName=null, 
> startTopVer=null, rcvdFrom=5a916a46-7d5a-400c-a9bc-5be543400000, 
> deploymentId=20ec5f19061-8097d64f-4969-4114-bc70-eb3c477953d1, 
> caches={cache=94416770}, rcvdFromVer=null, persistenceEnabled=true, 
> cacheName=cache]
>       at 
> org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager$CachesInfo.updateCachesInfo(CacheAffinitySharedManager.java:2620)
>       at 
> org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:743)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPartitionsExchangeFuture.java:842)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:595)
>       at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2284)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>       at java.lang.Thread.run(Thread.java:745)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to