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


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 6a1711fc41f HBASE-29907 ROWCOL bloom filter + 
StoreScanner.trySkipToNextColumn can surface out-of-order cells, causing read 
failure “isDelete failed” (#7764)
6a1711fc41f is described below

commit 6a1711fc41f644d33d11c8f322b4254d5a76b4af
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]>
    (cherry picked from commit 01f93dbf6add6223851a0482842f4253e53b966f)
---
 .../main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 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 c103fc9e433..2205c83a13c 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
@@ -961,8 +961,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() == 
HConstants.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