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

Reply via email to