Leon Finker created GEODE-8785:
----------------------------------

             Summary: Geode Client Reconnect and cache incosistency during that 
preiod
                 Key: GEODE-8785
                 URL: https://issues.apache.org/jira/browse/GEODE-8785
             Project: Geode
          Issue Type: Bug
          Components: client/server
            Reporter: Leon Finker


Hi,

We observed an issue with geode client re-connection and cache synchronization. 
We have a caching client region. In this region we register interest for keys 
(could be .*). Now, when client is reconnecting with the server, at that exact 
period, client region loses it's data. That's until it is repopulated again 
with interest registration calls and cache sync up. Looking 
QueueManagerImpl.recoverSingleKey,

and when primary endpoint recovered, it
issues Region.clearKeysOfInterest then eventually calls
 case InterestType.KEY:
 if (key instanceof String && key.equals("ALL_KEYS")) {
 clearViaRegEx(".*");
...
for (Object o : entrySet(false)) {
...
localDestroyNoCallbacks(entryKey);

This is really unexpected behavior and impossible to deal with. Everyone
would have to either create local disconnected region paired with proxy
empty region and forward events. Or always call keySetOnServer.

 

In addition, there is no way to know that the region is in this intermediate 
state. There is kind of cache global callback, but that's too global:

{color:#cc7832}private void 
{color}{color:#ffc66d}recoverAllInterestTypes{color}({color:#cc7832}final 
{color}Connection recoveredConnection{color:#cc7832},
{color}{color:#cc7832} boolean {color}isFirstNewConnection) {
 {color:#cc7832}if 
{color}(PoolImpl.{color:#9876aa}BEFORE_RECOVER_INTEREST_CALLBACK_FLAG{color}) {
 ClientServerObserver bo = 
ClientServerObserverHolder.getInstance(){color:#cc7832};
{color} bo.beforeInterestRecovery(){color:#cc7832};
{color} }

What can be done to solve this race condition of not having expected data or 
having incomplete cache data?

 

Thank you

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to