Seen once, on main's clippy + test (macos-latest) for 26ad854 (run 33939138651):
thread 'a_pass_with_nothing_to_evict_is_audible_and_not_an_alarm' panicked at tests/retention_loop.rs:303:5:
the pass emitted no INFO line, so a node whose retention loop has DIED looks exactly like one whose store is healthy. Silence is not a report.
test result: FAILED. 9 passed; 1 failed
The same test passed on the macOS lanes of e2f9557 (run 33931911725) and of #540 (run 33939306963, main + a one-line unit-test change). Never seen on ubuntu. The outcome assertions before it passed (WithinBounds, not a fault, no alarms) — only the "at least one INFO event was captured" half failed.
What the capture can and cannot see. tests/support/log_capture::capture runs the future under fut.with_subscriber(registry().with(CaptureLayer)). That scopes the subscriber to the instrumented future's own polls; an event emitted from a spawned task or a blocking thread (sqlx's pool workers, spawn_blocking) is invisible to it. run_pass emits its steady-state INFO inline after storage_summary() and evict_per_retention_policy(), so the expected line should be inside the scope — which is why this reads as a flake and not a deterministic miss. Worth checking on macOS specifically whether the INFO in the Within arm is reached on the path a fresh 3-trace store takes, or whether the pass returns through a branch that logs at DEBUG.
Ask: either make the capture thread-robust (tracing::subscriber::set_default guard for the duration, which also covers tasks spawned onto the current-thread test runtime) or make the assertion name the specific INFO it expects instead of "any INFO", so a miss says which line went quiet. Until then, a red macOS lane on main with only this test failing is this issue, not a regression — but it should not be allowed to become a permanent exemption.
Context: found while clearing main's lanes after the 0.5.197 merge (#529, #538, #539, #540).
🤖 Generated with Claude Code
https://claude.ai/code/session_01QVZ3v83uX8noLxXr7d7pu9
Seen once, on main's
clippy + test (macos-latest)for 26ad854 (run 33939138651):The same test passed on the macOS lanes of e2f9557 (run 33931911725) and of #540 (run 33939306963, main + a one-line unit-test change). Never seen on ubuntu. The outcome assertions before it passed (
WithinBounds, not a fault, no alarms) — only the "at least one INFO event was captured" half failed.What the capture can and cannot see.
tests/support/log_capture::captureruns the future underfut.with_subscriber(registry().with(CaptureLayer)). That scopes the subscriber to the instrumented future's own polls; an event emitted from a spawned task or a blocking thread (sqlx's pool workers,spawn_blocking) is invisible to it.run_passemits its steady-state INFO inline afterstorage_summary()andevict_per_retention_policy(), so the expected line should be inside the scope — which is why this reads as a flake and not a deterministic miss. Worth checking on macOS specifically whether the INFO in theWithinarm is reached on the path a fresh 3-trace store takes, or whether the pass returns through a branch that logs at DEBUG.Ask: either make the capture thread-robust (
tracing::subscriber::set_defaultguard for the duration, which also covers tasks spawned onto the current-thread test runtime) or make the assertion name the specific INFO it expects instead of "any INFO", so a miss says which line went quiet. Until then, a red macOS lane on main with only this test failing is this issue, not a regression — but it should not be allowed to become a permanent exemption.Context: found while clearing main's lanes after the 0.5.197 merge (#529, #538, #539, #540).
🤖 Generated with Claude Code
https://claude.ai/code/session_01QVZ3v83uX8noLxXr7d7pu9