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

idle expiration should ignore destroyed or invalid entries when computing last access time

    XMLWordPrintableJSON

Details

    Description

      When expiration is trying to determine if an entry has idle expired, it sends a message to the other members to determine the last time the entry was accessed. When that message, LatestLastAccessTimeMessage, checks for the entry it should ignore a destroyed entry if the expiration action is destroy, and it should ignore invalid entries if the expiration action is invalidate. But currently it does not ignore such entries and since invalidate/destroy also set the last accessed time, this can extend the expiration time on one member that has already performed the expiration on another member. Normally distributed expiration actions are done so this is not a problem but for local invalidates or destroys this can cause the entry to live longer than it should on some members.

      In particular this issue has been seen on partitioned regions that are configured with expiration destroy and eviction destroy. In that case the expire destroy becomes a local destroy even when a distributed destroy was requested. 

      This issue has existed since geode 1.4.

      Attachments

        Activity

          People

            dschneider Darrel Schneider
            dschneider Darrel Schneider
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: