You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2026/07/20 19:06:50 UTC
(pinot) branch master updated: [multistage] Fix flaky RAW_MESSAGES assertion in GrpcSenderBackpressureTest (#19020)
This is an automated email from the ASF dual-hosted git repository.
Jackie-Jiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new b9e538a117e [multistage] Fix flaky RAW_MESSAGES assertion in GrpcSenderBackpressureTest (#19020)
b9e538a117e is described below
commit b9e538a117e7a7934c6b656d7e0f77b6e89ee0b3
Author: Gonzalo Ortiz Jaureguizar <go...@users.noreply.github.com>
AuthorDate: Mon Jul 20 21:06:44 2026 +0200
[multistage] Fix flaky RAW_MESSAGES assertion in GrpcSenderBackpressureTest (#19020)
---
.../query/mailbox/GrpcSenderBackpressureTest.java | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/pinot-query-runtime/src/test/java/org/apache/pinot/query/mailbox/GrpcSenderBackpressureTest.java b/pinot-query-runtime/src/test/java/org/apache/pinot/query/mailbox/GrpcSenderBackpressureTest.java
index e80263b286e..d3ed1ff9367 100644
--- a/pinot-query-runtime/src/test/java/org/apache/pinot/query/mailbox/GrpcSenderBackpressureTest.java
+++ b/pinot-query-runtime/src/test/java/org/apache/pinot/query/mailbox/GrpcSenderBackpressureTest.java
@@ -178,8 +178,8 @@ public class GrpcSenderBackpressureTest {
watchdog.shutdownNow();
}
- // RAW_MESSAGES at this point may already include the error EOS the watchdog's cancel pushed through, so we use
- // `<=` rather than `==` in the assertion below.
+ // RAW_MESSAGES at this point may already include the error EOS the watchdog's cancel pushed through; see the
+ // bounds asserted below.
int rawMessages = stats.getInt(MailboxSendOperator.StatKey.RAW_MESSAGES);
stop.set(true);
@@ -202,10 +202,17 @@ public class GrpcSenderBackpressureTest {
_receiverService.getMailboxServerUsedHeapMemoryBytes(),
serverGrowth);
- // RAW_MESSAGES counts every block we pushed through processAndSend, including the error EOS the watchdog's
- // cancel may have emitted. So `rawMessages` is `sendCount` or `sendCount + 1`.
- assertTrue(rawMessages == sendCount || rawMessages == sendCount + 1,
- "RAW_MESSAGES (" + rawMessages + ") should equal sendCount (" + sendCount + ") or sendCount+1");
+ // Sanity-check that RAW_MESSAGES tracks the send loop, using two bounds that hold regardless of how the tail of
+ // the run interleaves with the watchdog's cancel. `sendCount` counts every send() call the loop made; each such
+ // call pushes at most one block through processAndSend (RAW_MESSAGES++), and the cancel adds at most one more
+ // error EOS, so RAW_MESSAGES can never exceed sendCount + 1. It also cannot be less than the number of blocks
+ // the receiver actually polled, since the receiver cannot poll a block the sender never pushed. Note we do NOT
+ // assert exact equality: a send() that races the cancel / early-termination is counted by the loop but skipped
+ // before RAW_MESSAGES is incremented, so RAW_MESSAGES legitimately trails sendCount by a few at the tail.
+ assertTrue(rawMessages <= sendCount + 1,
+ "RAW_MESSAGES (" + rawMessages + ") cannot exceed sendCount + 1 (" + (sendCount + 1) + ")");
+ assertTrue(rawMessages >= polledCount,
+ "RAW_MESSAGES (" + rawMessages + ") cannot be less than the polled count (" + polledCount + ")");
// (1) Bounded in-flight pipeline.
//
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org