[
https://issues.apache.org/jira/browse/GEODE-9704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17518280#comment-17518280
]
ASF subversion and git services commented on GEODE-9704:
--------------------------------------------------------
Commit 30bd1cef01b555c84e970c548cfb0e55f06fbf1c in geode's branch
refs/heads/develop from mhansonp
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=30bd1cef01 ]
GEODE-9704: Ensure that register interest is called before ready for events
(#7442)
- RegisterInterestOps need to happen before ReadyForEventsOp is sent
These changes make sure that happens.
- Added an InterestResultPolicyCheck
Authored-by: Barry Oglesby <[email protected]>
Un-ignored a test that will reproduce the issue
periodically during a number of runs. It is a flaky
test without the core fix.
Authored-by: Jinmei Liao <[email protected]>
> When durable clients recovers, it sends "ready for event" signal before
> register for interest, this might cause problem for caching_proxy regions
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GEODE-9704
> URL: https://issues.apache.org/jira/browse/GEODE-9704
> Project: Geode
> Issue Type: Bug
> Components: regions
> Affects Versions: 1.15.0
> Reporter: Jinmei Liao
> Assignee: Mark Hanson
> Priority: Major
> Labels: GeodeOperationAPI, blocks-1.15.1, pull-request-available
>
> This is the old Geode behavior, but may or may not be the correct behavior.
> When durable clients recovers, there is a queueTimer thread that runs
> `QueueManagerImp.recoverPrimary` method, it
> * makes new connection to server
> - sends readyForEvents (which will cause the server to start sending the
> queued events)
> - recovers interest
> - clears the region of keys of interest
> - re-registers interest
> It sends readyForEvents before it clears region of keys of interest, if
> server sends some events of those keys in between, it will clear them, thus
> it seems to the user that the client region doesn't have those keys.
>
> Run geode-core distributedTest
> AuthExpirationDUnitTest.registeredInterest_slowReAuth_policyKeys_durableClient(),
> change the InterestResultPolicy to NONE, you would see the test would fail
> occasionally, Adding sleep code in QueueManagerImp.recoverPrimary between
> `createNewPrimary` and `recoverInterest` would make the test fail more
> consistently.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)