Wait for Reactor Kafka test pipelines to finish - #12501
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
The receiver can close after it emits record 100 and before queued commit work ends. This keeps the test race that the change aims to remove.
🤖 Datadog Autotest · Commit 9f1e243 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Kafka / producer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
|
@DataDog review |
There was a problem hiding this comment.
The new take(100) stage can stop the Kafka receiver before queued offset commits finish. This race can make the test fail or time out.
🤖 Datadog Autotest · Commit 297eee1 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
|
@DataDog review |
There was a problem hiding this comment.
More details
The test waits until all producer sends and offset commits finish. It then stops the receiver and closes the sender.
🤖 Datadog Autotest · Commit 8281aad · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
Kafka / consumer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
What Does This Do
Makes the Reactor Kafka test wait for all 100 offset commits before stopping the receiver.
Previously,
take(100)could cancel the receiver as soon as the records were delivered, while asynchronous commits were still queued.The test now:
blockLast().Cleanup also disposes the receiver and closes the Kafka sender.
sequenceDiagram participant Test participant Producer participant Kafka participant Receiver participant Commits as Commit latch participant Writer as Trace writer Test->>Receiver: subscribe Test->>Producer: send 100 records Producer->>Kafka: publish records loop 100 records Kafka->>Receiver: deliver record Receiver->>Kafka: commit offset Kafka-->>Receiver: commit completes Receiver->>Commits: count down Receiver->>Writer: publish consume trace end Producer-->>Test: blockLast completes Commits-->>Test: all 100 commits completed Test->>Receiver: dispose subscription Test->>Writer: verify 200 tracesMotivation
Trace publication is not a completion signal for the surrounding reactive work. The test could therefore finish while Reactor still owned active continuations or offset commits.
Waiting for successful commit completions makes the receiver lifecycle explicit and removes that race.
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]