You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/10/10 20:14:00 UTC

[jira] [Commented] (GEODE-10412) Destroy region command doesn't clear the region related expired tombstones

    [ https://issues.apache.org/jira/browse/GEODE-10412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17615324#comment-17615324 ] 

ASF subversion and git services commented on GEODE-10412:
---------------------------------------------------------

Commit bc47b30c0bb57a9c9437234a8fc8530f1daf14bc in geode's branch refs/heads/master from Jakov Varenina
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=bc47b30c0b ]

GEODE-10412: Clear expired tombstones during region destroy (#7838)

* GEODE-10412: Clear expired tombstones during region destroy

The issue:
During region destroy operation, the expired tombstones aren't cleared
when non-expired ones are available. Later, these expired
tombstones prevent all other regions' tombstones from being cleared
from memory, causing many issues (memory and disk exhaustion).

The solution:
When a region is destroyed, it must clear all the related expired and
non-expired tombstones from memory.

* Add distributed test that reproduce the issue

* Update after review

> Destroy 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
>          Components: expiration
>            Reporter: Jakov Varenina
>            Assignee: Jakov Varenina
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.15.1, 1.16.0
>
>
> 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)