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

haxiaolin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 238c9b4  HBASE-26155 JVM crash when scan (#3553)
238c9b4 is described below

commit 238c9b40bf73f6038d60ebf7c99444b7fee373ab
Author: Xiaolin Ha <[email protected]>
AuthorDate: Thu Aug 12 17:09:18 2021 +0800

    HBASE-26155 JVM crash when scan (#3553)
    
    Signed-off-by: Michael Stack <[email protected]>
    Signed-off-by: Duo Zhang <[email protected]>
---
 .../java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java    | 5 +++++
 .../main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java | 3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

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 0187f5e..9dc40d0 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
@@ -430,6 +430,11 @@ public class BucketCache implements BlockCache, HeapSize {
     if (cacheEnabled) {
       if (backingMap.containsKey(cacheKey) || ramCache.containsKey(cacheKey)) {
         if (BlockCacheUtil.shouldReplaceExistingCacheBlock(this, cacheKey, 
cachedItem)) {
+          BucketEntry bucketEntry = backingMap.get(cacheKey);
+          if (bucketEntry != null && bucketEntry.isRpcRef()) {
+            // avoid replace when there are RPC refs for the bucket entry in 
bucket cache
+            return;
+          }
           cacheBlockWithWaitInternal(cacheKey, cachedItem, inMemory, wait);
         }
       } else {
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
index 5ad29bb..9505fb0 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
@@ -29,10 +29,9 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.DoNotRetryIOException;
-import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.PrivateCellUtil;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValueUtil;
+import org.apache.hadoop.hbase.PrivateCellUtil;
 import org.apache.hadoop.hbase.PrivateConstants;
 import org.apache.hadoop.hbase.client.IsolationLevel;
 import org.apache.hadoop.hbase.client.Scan;

Reply via email to