[
https://issues.apache.org/jira/browse/GEODE-9146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Darrel Schneider updated GEODE-9146:
------------------------------------
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.
was:
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. 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 on one member.
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.
> idle expiration should ignore destroyed or invalid entries when computing
> last access time
> ------------------------------------------------------------------------------------------
>
> Key: GEODE-9146
> URL: https://issues.apache.org/jira/browse/GEODE-9146
> Project: Geode
> Issue Type: Bug
> Components: expiration
> Affects Versions: 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.9.1, 1.9.2,
> 1.10.0, 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1, 1.13.2
> Reporter: Darrel Schneider
> Priority: Major
> Labels: GeodeOperationAPI
>
> 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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)