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

zhangduo 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 01f93dbf6ad HBASE-29907 ROWCOL bloom filter + 
StoreScanner.trySkipToNextColumn can surface out-of-order cells, causing read 
failure “isDelete failed” (#7764)
01f93dbf6ad is described below

commit 01f93dbf6add6223851a0482842f4253e53b966f
Author: ningjize <[email protected]>
AuthorDate: Wed Feb 25 09:39:02 2026 -0500

    HBASE-29907 ROWCOL bloom filter + StoreScanner.trySkipToNextColumn can 
surface out-of-order cells, causing read failure “isDelete failed” (#7764)
    
    Signed-off-by: Duo Zhang <[email protected]>
---
 .../java/org/apache/hadoop/hbase/regionserver/StoreScanner.java     | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

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 76f3e15c90c..634b6fffcf5 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
@@ -964,10 +964,8 @@ public class StoreScanner extends 
NonReversedNonLazyKeyValueScanner
     } while ((nextCell = this.heap.peek()) != null && 
CellUtil.matchingRowColumn(cell, nextCell));
     // We need this check because it may happen that the new scanner that we 
get
     // during heap.next() is requiring reseek due of fake KV previously 
generated for
-    // ROWCOL bloom filter optimization. See HBASE-19863 for more details
-    if (
-      useRowColBloom && nextCell != null && cell.getTimestamp() == 
PrivateConstants.OLDEST_TIMESTAMP
-    ) {
+    // ROWCOL bloom filter optimization. See HBASE-19863 and HBASE-29907 for 
more details
+    if (useRowColBloom && nextCell != null && 
matcher.compareKeyForNextColumn(nextCell, cell) < 0) {
       return false;
     }
     return true;

Reply via email to