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

Oleg Valuyskiy updated IGNITE-28806:
------------------------------------
    Description: 
A server node may fail during the first local join exchange if thin clients 
concurrently issue *getOrCreateCache()* requests when cluster is starting. 
Dynamic cache group descriptors can become visible in *cachesRegistry* before 
the corresponding local *CacheGroupContext* is created.

In this state, *CacheAffinitySharedManager#initCoordinatorCaches* is called 
with {*}newAff=false{*}, enters the *grp == null* branch, and tries to fetch 
affinity from a previous completed exchange. For the first local join exchange 
there is no previous exchange, which may lead to:
{code:java}
AssertionError: Invalid exchange futures state [cur=..., total=...]{code}
Reproducer:

[^ThinClientDynamicCachePressureOnRestartTest.patch]

  was:
A server node may fail during the first local join exchange if thin clients 
concurrently issue *getOrCreateCache()* requests when cluster is starting. 
Dynamic cache group descriptors can become visible in *cachesRegistry* before 
the corresponding local *CacheGroupContext* is created. In this state, 
*CacheAffinitySharedManager#initCoordinatorCaches* is called with 
{*}newAff=false{*}, enters the *grp == null* branch, and tries to fetch 
affinity from a previous completed exchange. For the first local join exchange 
there is no previous exchange, which may lead to:
{code:java}
AssertionError: Invalid exchange futures state [cur=..., total=...]{code}
Reproducer:

[^ThinClientDynamicCachePressureOnRestartTest.patch]


> CacheAffinitySharedManager may fail with "Invalid exchange futures state" 
> when thin clients create dynamic caches during cluster restart
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28806
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28806
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Oleg Valuyskiy
>            Assignee: Oleg Valuyskiy
>            Priority: Minor
>              Labels: ise
>         Attachments: ThinClientDynamicCachePressureOnRestartTest.patch
>
>
> A server node may fail during the first local join exchange if thin clients 
> concurrently issue *getOrCreateCache()* requests when cluster is starting. 
> Dynamic cache group descriptors can become visible in *cachesRegistry* before 
> the corresponding local *CacheGroupContext* is created.
> In this state, *CacheAffinitySharedManager#initCoordinatorCaches* is called 
> with {*}newAff=false{*}, enters the *grp == null* branch, and tries to fetch 
> affinity from a previous completed exchange. For the first local join 
> exchange there is no previous exchange, which may lead to:
> {code:java}
> AssertionError: Invalid exchange futures state [cur=..., total=...]{code}
> Reproducer:
> [^ThinClientDynamicCachePressureOnRestartTest.patch]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to