agingade commented on a change in pull request #7258:
URL: https://github.com/apache/geode/pull/7258#discussion_r783426191



##########
File path: 
geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
##########
@@ -926,6 +930,9 @@ private void recoverPrimary(Set<ServerLocation> 
excludedServers) {
           excludedServers.add(newPrimary.getServer());
           newPrimary = null;
         }
+
+        markAsQueueAsReadyForEvents(newPrimary);

Review comment:
       The "readyForEvents" op, along with indicating client is ready  and 
starting the dispatcher thread on the server; it also adds a Marker message; 
which dictates whether the events delivered from server is applied to local 
client cache. Any events that arrives before the marker message is not applied 
to local cache.
   
   The sequence of action that should happen is:
   - Get the primary connection
   - Clear the local cache
   - Send readyForEvent message (it adds the marker message behind the events 
in server side queue)
   - Do interest registration (this gets those events before the marker as part 
of the response, so need to apply to local cache)
   
   You need to have a test; where data is getting added to server cache; while 
readyForEvents and register-interest in progress; and then compare the entries 
in cliient and server cache/region.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to