Darrel Schneider created GEODE-5573:
---------------------------------------

             Summary: 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


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