[ 
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)

Reply via email to