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

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

commit bb094dc33dfb691b69a3b575558a0411592f941a
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 3da99ddcf78..2854ff598dd 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
@@ -255,6 +255,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");
     this.algorithm = conf.get(FILE_VERIFY_ALGORITHM, 
DEFAULT_FILE_VERIFY_ALGORITHM);
     this.ioEngine = getIOEngineFromName(ioEngineName, capacity, 
persistencePath);
     this.writerThreads = new WriterThread[writerThreadNum];

Reply via email to