You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Oleg Valuyskiy (Jira)" <ji...@apache.org> on 2026/06/22 06:41:00 UTC

[jira] [Updated] (IGNITE-28806) CacheAffinitySharedManager may fail with "Invalid exchange futures state" when thin clients create dynamic caches during cluster restart

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

 


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