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;