You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/04/06 16:28:00 UTC
[jira] [Commented] (GEODE-9704) When durable clients recovers, it sends "ready for event" signal before register for interest, this might cause problem for caching_proxy regions
[ 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 <bo...@users.noreply.github.com>
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 <ji...@pivotal.io>
> 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)