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]