[ 
https://issues.apache.org/jira/browse/IGNITE-10228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin updated IGNITE-10228:
-----------------------------------------
    Description: 
It looks like the root cause of the issue is that 
{{CacheGroupContext.addCacheContext()}} (which is called in parallel) does not 
use a lock/semaphore in order to synchronize {{caches}} updates.

 
{code:java}
private void addCacheContext(GridCacheContext cctx) {
    ArrayList<GridCacheContext> caches = new ArrayList<>(this.caches);

    boolean add = caches.add(cctx);

    ...

    this.caches = caches;
}

{code}
 

The possible workaround is to disable parallel start of caches by setting the 
{{IGNITE_ALLOW_START_CACHES_IN_PARALLEL}} property to {{false}}.

  was:
It looks like the root cause of the issue is that 
{{CacheGroupContext.addCacheContext()}} (which is called in parallel) does not 
use a lock/semaphore in order to synchronize {{caches}} updates.

 
{code:java}
private void addCacheContext(GridCacheContext cctx) {
    ArrayList<GridCacheContext> caches = new ArrayList<>(this.caches);

    boolean add = caches.add(cctx);

    ...

    this.caches = caches;
}

{code}
 

The possible workaround is to disable parallel start of caches by setting 
{{IGNITE_ALLOW_START_CACHES_IN_PARALLEL}} property to {{false}}.


> Start multiple caches in parallel may lead to the fact that some of the 
> caches won't be registered.
> ---------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-10228
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10228
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.6
>            Reporter: Vyacheslav Koptilin
>            Priority: Major
>
> It looks like the root cause of the issue is that 
> {{CacheGroupContext.addCacheContext()}} (which is called in parallel) does 
> not use a lock/semaphore in order to synchronize {{caches}} updates.
>  
> {code:java}
> private void addCacheContext(GridCacheContext cctx) {
>     ArrayList<GridCacheContext> caches = new ArrayList<>(this.caches);
>     boolean add = caches.add(cctx);
>     ...
>     this.caches = caches;
> }
> {code}
>  
> The possible workaround is to disable parallel start of caches by setting the 
> {{IGNITE_ALLOW_START_CACHES_IN_PARALLEL}} property to {{false}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to