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;