Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-9704

When durable clients recovers, it sends "ready for event" signal before register for interest, this might cause problem for caching_proxy regions

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              mhansonp Mark Hanson
              jinmeiliao Jinmei Liao
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: