Conversation
PR Review: Make GC tests deterministicSummaryGood improvement. Switching from real-clock sleeps and What looks good
Issues raised (see inline comments)
VerdictThe PR achieves its stated goal for the non-ScaleOut tests. The ScaleOut tests are improved but retain some real-time dependency. No correctness or safety concerns. The suggestions above are nits/improvements — none are blockers. |
There was a problem hiding this comment.
Pull request overview
This PR updates Level Zero GC unit/integration tests to run deterministically by driving the GC with ss::manual_clock and replacing real-time “eventually” polling with explicit clock advancement + task-queue draining.
Changes:
- Instantiate GC under test as
level_zero_gc_t<ss::manual_clock>(with zero jitter) to control scheduling deterministically. - Replace
Eventually(...)/real sleeps withtick()andtick_until(...)helpers that advance the manual clock and drain Seastar task queues. - Update multi-shard GC tests to use the same manual-clock-driven approach.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
src/v/cloud_topics/level_zero/gc/tests/level_zero_gc_tests.cc |
Switches single-shard GC tests to manual clock + tick helpers; adjusts scale-out tests with a special tick to account for mock I/O delays. |
src/v/cloud_topics/level_zero/gc/tests/level_zero_gc_mt_test.cc |
Switches sharded/multi-thread GC tests to manual clock + tick helpers and injects zero jitter. |
8d7c1a3 to
77548e0
Compare
manual_clock and so on
manual_clock and so on.
77548e0 to
cee5668
Compare
|
CI Failures: ducktape-release ducktape-debug didn't run |
|
/ci-repeat 1 |
Retry command for Build#82743please wait until all jobs are finished before running the slash command |
|
/ci-repeat 1 |
Retry command for Build#82744please wait until all jobs are finished before running the slash command |
|
/ci-repeat 1 |
manual_clockand so onSaw exactly one timing flake in CI and that was enough for me.
Backports Required
Release Notes