This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2.5
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.5 by this push:
new 8eeb8802a48 HBASE-29759 TestAsyncTableScan fails with tracing assert
error (#7836)
8eeb8802a48 is described below
commit 8eeb8802a482951152a898d72e9e5fc857c22348
Author: Nick Dimiduk <[email protected]>
AuthorDate: Wed Mar 4 02:58:41 2026 +0100
HBASE-29759 TestAsyncTableScan fails with tracing assert error (#7836)
Include #7538 and #7557
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit 7141394294e50350c5de7eb582db0d0ae4f270f1)
---
.../apache/hadoop/hbase/client/TestAsyncTableScan.java | 16 ++++++++++------
.../hadoop/hbase/client/TestAsyncTableScanAll.java | 10 ++++++----
.../hadoop/hbase/client/TestAsyncTableScanner.java | 10 ++++++----
.../hadoop/hbase/client/TestRawAsyncTableScan.java | 16 ++++++++++------
4 files changed, 32 insertions(+), 20 deletions(-)
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScan.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScan.java
index efd76677373..7cdb58c1260 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScan.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScan.java
@@ -112,15 +112,17 @@ public class TestAsyncTableScan extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
hasParentSpanId(parentSpanId), hasStatusWithCode(StatusCode.OK),
hasEnded());
waitForSpan(scanOperationSpanMatcher);
final String scanOperationSpanId =
spanStream().filter(scanOperationSpanMatcher::matches)
- .map(SpanData::getSpanId).findAny().get();
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> onNextMatcher =
hasName("TracedScanResultConsumer#onNext");
waitForSpan(onNextMatcher);
@@ -148,8 +150,9 @@ public class TestAsyncTableScan extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
@@ -157,7 +160,8 @@ public class TestAsyncTableScan extends
AbstractTestAsyncTableScan {
hasException(exceptionMatcher), hasEnded());
waitForSpan(scanOperationSpanMatcher);
final String scanOperationSpanId =
spanStream().filter(scanOperationSpanMatcher::matches)
- .map(SpanData::getSpanId).findAny().get();
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> onErrorMatcher =
hasName("TracedScanResultConsumer#onError");
waitForSpan(onErrorMatcher);
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanAll.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanAll.java
index a59f1fa355b..8f2d3c5e814 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanAll.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanAll.java
@@ -102,8 +102,9 @@ public class TestAsyncTableScanAll extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
@@ -124,8 +125,9 @@ public class TestAsyncTableScanAll extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanner.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanner.java
index 0da3e0ded58..54552639c75 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanner.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableScanner.java
@@ -115,8 +115,9 @@ public class TestAsyncTableScanner extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
waitForSpan(allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
hasParentSpanId(parentSpanId), hasStatusWithCode(StatusCode.OK),
hasEnded()));
@@ -135,8 +136,9 @@ public class TestAsyncTableScanner extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java
index b7a8fc9a017..758e1245bde 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java
@@ -107,8 +107,9 @@ public class TestRawAsyncTableScan extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
@@ -116,7 +117,8 @@ public class TestRawAsyncTableScan extends
AbstractTestAsyncTableScan {
waitForSpan(scanOperationSpanMatcher);
final String scanOperationSpanId =
spanStream().filter(scanOperationSpanMatcher::matches)
- .map(SpanData::getSpanId).findAny().get();
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> onNextMatcher =
hasName("TracedAdvancedScanResultConsumer#onNext");
waitForSpan(onNextMatcher);
spanStream().filter(onNextMatcher::matches)
@@ -145,8 +147,9 @@ public class TestRawAsyncTableScan extends
AbstractTestAsyncTableScan {
stringTraceRenderer.render(logger::debug);
}
- final String parentSpanId =
-
spanStream().filter(parentSpanMatcher::matches).map(SpanData::getSpanId).findAny().get();
+ final String parentSpanId = spanStream().filter(parentSpanMatcher::matches)
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> scanOperationSpanMatcher =
allOf(hasName(startsWith("SCAN " +
TABLE_NAME.getNameWithNamespaceInclAsString())),
@@ -154,7 +157,8 @@ public class TestRawAsyncTableScan extends
AbstractTestAsyncTableScan {
hasException(exceptionMatcher), hasEnded());
waitForSpan(scanOperationSpanMatcher);
final String scanOperationSpanId =
spanStream().filter(scanOperationSpanMatcher::matches)
- .map(SpanData::getSpanId).findAny().get();
+ .max((a, b) -> Long.compare(a.getEndEpochNanos(), b.getEndEpochNanos()))
+ .map(SpanData::getSpanId).get();
final Matcher<SpanData> onCompleteMatcher =
hasName("TracedAdvancedScanResultConsumer#onError");
waitForSpan(onCompleteMatcher);