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

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

commit 9e1c1cb242eb861806d18444298731b26386e264
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 42ed74f78bb..728946c1c18 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
@@ -279,6 +279,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