Repository: hbase Updated Branches: refs/heads/branch-1.3 a7a757791 -> 1a36db146
HBASE-19728 Add lock to filesCompacting in all place. Signed-off-by: Sean Busbey <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4d6d4c32 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4d6d4c32 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4d6d4c32 Branch: refs/heads/branch-1.3 Commit: 4d6d4c32489666ff452418993a044f6874e23dfd Parents: a7a7577 Author: binlijin <[email protected]> Authored: Wed Jan 31 17:01:58 2018 +0800 Committer: Sean Busbey <[email protected]> Committed: Fri Feb 23 14:00:37 2018 -0600 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hbase/regionserver/HStore.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/4d6d4c32/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java index 957751c..62b2e30 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java @@ -1418,7 +1418,9 @@ public class HStore implements Store { this.lock.writeLock().lock(); try { this.storeEngine.getStoreFileManager().addCompactionResults(compactedFiles, result); - filesCompacting.removeAll(compactedFiles); // safe bc: lock.writeLock(); + synchronized (filesCompacting) { + filesCompacting.removeAll(compactedFiles); + } } finally { this.lock.writeLock().unlock(); } @@ -2529,7 +2531,11 @@ public class HStore implements Store { @Override public boolean needsCompaction() { - return this.storeEngine.needsCompaction(this.filesCompacting); + List<StoreFile> filesCompactingClone = null; + synchronized (filesCompacting) { + filesCompactingClone = Lists.newArrayList(filesCompacting); + } + return this.storeEngine.needsCompaction(filesCompactingClone); } @Override
