This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2.6
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.6 by this push:
new 218e2fbe51b HBASE-29907 ROWCOL bloom filter +
StoreScanner.trySkipToNextColumn can surface out-of-order cells, causing read
failure “isDelete failed” (#7764)
218e2fbe51b is described below
commit 218e2fbe51bb914f883e7ef270d09886fce7527c
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 506af8c404b..d0e9e92db7d 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
@@ -950,8 +950,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;