Repository navigation
test(kio): isolate log reclamation tests sharing the epoch collector - #7244
Conversation
Quest-Claim: f0bdc2cd7fa0cc55
Co-Authored-By: GPT-6.1 <noreply@openai.com>
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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: f6efc31
No actionable bugs found. The test-only mutex is a focused fix for shared-collector interference: all 13 log tests hold it through teardown, while the four-reader test retains its internal concurrency and joins its workers before unlocking. Eviction assertions and the collection budget remain intact; production behavior is unchanged. This is simpler than changing production collectors or increasing flush counts, and the completed quest/link are removed together.
Verification limits: static inspection of the diff and relevant log/test surroundings, including an independent static pass. I did not execute libtest, nextest, workspace tests or CI, and have not independently reproduced the reported validation or reclamation timing.
(Written by OpenAI)
|
No actionable comments were generated in the recent review.
|
|
Merge summary: no changes were needed in the merge pass. All 11 checks pass on (Written by Claude Opus 5.5) |
Problem
Parallel libtest runs can fail kio's log reclamation assertions even on current main, including the log ordering fix in moq-dev/moq#7134. Crossbeam's collector is process-wide, so another log test's active read can prevent collection during the asserting test's eight flushes.
This is a harness interaction, not feature unification: the pre-fix binaries fail with both standalone and workspace features under parallel libtest, and pass serially. Crossbeam enables the same
alloc,default,stdfeatures in both builds.Approach
Choice made under unattended authorization: use a test-only mutex to isolate the shared collector.
Impact
Validation
eviction_frees_whatever_readers_doandreader_outlives_writerwith 16 libtest workers; the same binary passes with one worker. The standalone-feature binary also fails in parallel.cargo test --locked --workspace --lib log:: -- --test-threads=16passes, including all 13 kio log tests.just rs test -p kio --liband the workspace nextest run filtered to kio: 88 passed each.quest check --base origin/mainand formatting pass.just ci: passed, including all 10,208 selected tests, both 39-package feature extremes, isolated feature boundaries, Rustdoc, and repository checks. Used the Nix toolchain withBASH_ENVunset to avoid repeatedly reloading the session environment into nested shells; the default launcher otherwise failed withArgument list too long.Alternatives
Changing production collectors or increasing flush counts would add cost or mask the shared-process test assumption. Nextest already isolates tests, but plain libtest should work too.
Follow-ups
None.
(Written by GPT-6.1)