[ 
https://issues.apache.org/jira/browse/GEODE-10412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jakov Varenina updated GEODE-10412:
-----------------------------------
    Description: 
Tombstones in geode are kept on two maps: expiredTombstones and tombstones 
(non-expired ones). When a region is destroyed, it must clear all the related 
expired and non-expired tombstones from memory. Due to the below code bug, 
expired tombstones aren't cleared when non-expired tombstones are available 
during the region destruction:
{code:java}
private boolean removeIf(Predicate<Tombstone> predicate) {      
  return removeUnexpiredIf(predicate) || removeExpiredIf(predicate);    
}
{code}
Because of the above, non-expired tombstones are never removed from memory, 
preventing other tombstones from being cleared. Since other tombstones never 
expire, the compaction is not done, and therefore the disk is filled, causing 
the issues.

  was:
Tombstones in geode are kept on two maps: expiredTombstones and tombstones 
(non-expired ones). When a region is destroyed, it must clear all the related 
expired and non-expired tombstones from memory. Due to the below code bug, 
expired tombstones aren't cleared when non-expired tombstones are available 
during the region destruction:

 
{code:java}
private boolean removeIf(Predicate<Tombstone> predicate) {      
  return removeUnexpiredIf(predicate) || removeExpiredIf(predicate);    
}
{code}
 

Because of the above, non-expired tombstones are never removed from memory, 
preventing other tombstones from being cleared. Since other tombstones never 
expire, the compaction is not done, and therefore the disk is filled, causing 
the issues.


> Destry region command doesn't clear the region related expired tombstones
> -------------------------------------------------------------------------
>
>                 Key: GEODE-10412
>                 URL: https://issues.apache.org/jira/browse/GEODE-10412
>             Project: Geode
>          Issue Type: Bug
>            Reporter: Jakov Varenina
>            Priority: Major
>              Labels: needsTriage
>
> Tombstones in geode are kept on two maps: expiredTombstones and tombstones 
> (non-expired ones). When a region is destroyed, it must clear all the related 
> expired and non-expired tombstones from memory. Due to the below code bug, 
> expired tombstones aren't cleared when non-expired tombstones are available 
> during the region destruction:
> {code:java}
> private boolean removeIf(Predicate<Tombstone> predicate) {      
>   return removeUnexpiredIf(predicate) || removeExpiredIf(predicate);    
> }
> {code}
> Because of the above, non-expired tombstones are never removed from memory, 
> preventing other tombstones from being cleared. Since other tombstones never 
> expire, the compaction is not done, and therefore the disk is filled, causing 
> the issues.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to