You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by sy...@apache.org on 2017/06/21 22:24:12 UTC

hbase git commit: HBASE-15691 ConcurrentModificationException in BucketAllocator

Repository: hbase
Updated Branches:
  refs/heads/branch-1 739fedbbb -> 105c5c36e


HBASE-15691 ConcurrentModificationException in BucketAllocator


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/105c5c36
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/105c5c36
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/105c5c36

Branch: refs/heads/branch-1
Commit: 105c5c36e622c435d0e952722ce12bddbf08c22f
Parents: 739fedb
Author: Stephen Yuan Jiang <sy...@gmail.com>
Authored: Wed Jun 21 15:23:59 2017 -0700
Committer: Stephen Yuan Jiang <sy...@gmail.com>
Committed: Wed Jun 21 15:23:59 2017 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java   | 6 +++---
 .../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java   | 2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/105c5c36/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java
index 73197b9..a6c84d0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java
@@ -188,7 +188,7 @@ public final class BucketAllocator {
       this.sizeIndex = sizeIndex;
     }
 
-    public void instantiateBucket(Bucket b) {
+    public synchronized void instantiateBucket(Bucket b) {
       assert b.isUninstantiated() || b.isCompletelyFree();
       b.reconfigure(sizeIndex, bucketSizes, bucketCapacity);
       bucketList.put(b, b);
@@ -240,7 +240,7 @@ public final class BucketAllocator {
       return b;
     }
 
-    private void removeBucket(Bucket b) {
+    private synchronized void removeBucket(Bucket b) {
       assert b.isCompletelyFree();
       bucketList.remove(b);
       freeBuckets.remove(b);
@@ -256,7 +256,7 @@ public final class BucketAllocator {
       if (b.isCompletelyFree()) completelyFreeBuckets.put(b, b);
     }
 
-    public IndexStatistics statistics() {
+    public synchronized IndexStatistics statistics() {
       long free = 0, used = 0;
       for (Object obj : bucketList.keySet()) {
         Bucket b = (Bucket) obj;

http://git-wip-us.apache.org/repos/asf/hbase/blob/105c5c36/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
index 9c075c6..7aabb5c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
@@ -754,6 +754,8 @@ public class BucketCache implements BlockCache, HeapSize {
         }
       }
 
+    } catch (Throwable t) {
+      LOG.warn("Failed freeing space", t);
     } finally {
       cacheStats.evict();
       freeInProgress = false;