You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2022/07/21 01:04:00 UTC
[jira] [Reopened] (HBASE-27152) Under compaction mark may leak
[ https://issues.apache.org/jira/browse/HBASE-27152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang reopened HBASE-27152:
-------------------------------
This breaks several UTs.
Revert for now.
[~Xiaolin Ha] Please see the TestCompaction.testCompactionQueuePriorities.
> Under compaction mark may leak
> ------------------------------
>
> Key: HBASE-27152
> URL: https://issues.apache.org/jira/browse/HBASE-27152
> Project: HBase
> Issue Type: Bug
> Components: Compaction
> Affects Versions: 3.0.0-alpha-2, 2.4.12
> Reporter: Xiaolin Ha
> Assignee: Xiaolin Ha
> Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-4
>
>
> HBASE-26249 introduced an under compaction mark to reduce repeatedly compactions for the same stores for a short period of time after bulk loading files.
> Since the mark adding and removing are in difference threads,
> {code:java}
> pool.execute(
> new CompactionRunner(store, region, compaction, tracker, completeTracker, pool, user));
> if (LOG.isDebugEnabled()) {
> LOG.debug(
> "Add compact mark for store {}, priority={}, current under compaction "
> + "store size is {}",
> getStoreNameForUnderCompaction(store), priority, underCompactionStores.size());
> }
> underCompactionStores.add(getStoreNameForUnderCompaction(store)); {code}
> it happens that the concurrently of thread-1 using underCompactionStores.add() and thread-2 which running a CompactionRunner that using underCompactionStores.remove(). If the removing happens before adding, the mark will leak.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)