This is an automated email from the ASF dual-hosted git repository. stoty pushed a commit to branch PHOENIX_DUMMY_CELL_WORKAROUND in repository https://gitbox.apache.org/repos/asf/hbase.git
commit fc47ffd8c86c0e104bbd29f01ed023690cdb93d3 Author: Istvan Toth <[email protected]> AuthorDate: Thu Nov 13 11:09:06 2025 +0100 Do Not Commit! For testing only PHOENIX_DUMMY_CELL_WORKAROUND --- .../hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java index 51a9a07c9a2..abc6eb72f6c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java @@ -36,6 +36,7 @@ import java.util.Optional; import java.util.OptionalLong; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.HBaseServerException; import org.apache.hadoop.hbase.HConstants; @@ -531,7 +532,13 @@ class AsyncScanSingleRegionRpcRetryingCaller { if (results.length > 0) { scanController = new ScanControllerImpl( resp.hasCursor() ? Optional.of(ProtobufUtil.toCursor(resp.getCursor())) : Optional.empty()); - updateNextStartRowWhenError(results[results.length - 1]); + //FIXME quick hack to test Phoenix dummy cell compatibility + boolean isDummy = CellUtil.matchingColumn(results[0].listCells().get(0), new byte[0], new byte[0]); + if (!isDummy) { + updateNextStartRowWhenError(results[results.length - 1]); + } else { + LOG.error("XXXXX skipped updateNextStartRowWhenError for dummy cell", new Exception()); + } consumer.onNext(results, scanController); } else { Optional<Cursor> cursor = Optional.empty();
