This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit e2d7ec968eacc2c561271ec07a89519945a22a1f
Author: ConfX <114765570+teamco...@users.noreply.github.com>
AuthorDate: Thu Mar 28 23:01:23 2024 +0800

    HBASE-27990 BucketCache causes ArithmeticException due to improper 
blockSize value checking (#5389)
    
    Signed-off-by: Duo Zhang <zhang...@apache.org>
    (cherry picked from commit 5a0c4de66b16281b25fd14bfbe2ee60d0657b8a3)
---
 .../main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java  | 2 ++
 1 file changed, 2 insertions(+)

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 912a3ab524f..855f183b98f 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
@@ -283,6 +283,8 @@ public class BucketCache implements BlockCache, HeapSize {
   public BucketCache(String ioEngineName, long capacity, int blockSize, int[] 
bucketSizes,
     int writerThreadNum, int writerQLen, String persistencePath, int 
ioErrorsTolerationDuration,
     Configuration conf) throws IOException {
+    Preconditions.checkArgument(blockSize > 0,
+      "BucketCache capacity is set to " + blockSize + ", can not be less than 
0");
     boolean useStrongRef = conf.getBoolean(STRONG_REF_KEY, STRONG_REF_DEFAULT);
     if (useStrongRef) {
       this.offsetLock = new IdReadWriteLockStrongRef<>();

Reply via email to