You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Darrel Schneider (JIRA)" <ji...@apache.org> on 2018/08/13 17:59:01 UTC
[jira] [Commented] (GEODE-5573) evict destroy can leave a region
entry in the cache whose value is REMOVE_PHASE1
[ https://issues.apache.org/jira/browse/GEODE-5573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16578715#comment-16578715 ]
Darrel Schneider commented on GEODE-5573:
-----------------------------------------
I have a fix for this issue.
> evict destroy can leave a region entry in the cache whose value is REMOVE_PHASE1
> --------------------------------------------------------------------------------
>
> Key: GEODE-5573
> URL: https://issues.apache.org/jira/browse/GEODE-5573
> Project: Geode
> Issue Type: Bug
> Components: eviction
> Reporter: Darrel Schneider
> Assignee: Darrel Schneider
> Priority: Major
>
> The RegionMapDestroy code has a finally block to remove the region entry that the destroy temporarily added if the destroy operation failed for some region. The code in question is in: org.apache.geode.internal.cache.map.RegionMapDestroy.retryRemoveWithTombstone()
> At the end of the method it does a putIfAbsent if the new region entry that contains REMOVE_PHASE1 but then only cleans it up (by calling removeEntryOrLeaveTombstone) if the current destroy operation is not from eviction. So in the eviction case we can end up leaving this REMOVE_PHASE1 entry in the map.
> The contract for REMOVE_PHASE1 is that whoever set the region entry to REMOVE_PHASE1 will also set it to REMOVE_PHASE2. But that never happens in this case. I'm not sure if this will cause a serious problem in our current code base but it would be best to have eviction clean this entry up or to not even create the entry in the first place if that can be done.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)