Finding
epignosis rate_limit::tests::rate_limiter_allows_burst_then_throttles is timing-dependent and fails intermittently when the host is under concurrent load. It failed once during a kanon gate --full run while other builds were saturating the machine, then passed on an immediate re-run with no code change.
Evidence
crates/epignosis/src/rate_limit.rs:121 — the test panicked at an assertion during a loaded gate run; the identical gate re-run (same commit) passed. The test exercises burst-then-throttle behaviour against a real time source, so scheduler jitter under load shifts the observed throttling boundary.
Why this matters
A wall-clock-timing test in the workspace test suite makes cargo nextest (a required CI check and the local gate's nextest stage) non-deterministic. Under the CI-minute ceiling, a spurious failure forces a full re-run; locally it blocks the Gate-Passed stamp on unrelated PRs (this surfaced while gating a syndesmos change that does not touch epignosis).
Desired correction
Make the rate-limiter test deterministic: inject a controllable clock (a fake/mock time source or tokio::time::pause/advance) so burst and throttle boundaries are asserted against virtual time rather than wall-clock elapsed. Audit the rest of rate_limit.rs tests for the same wall-clock dependence.
Done when: the test asserts throttling against an injected clock (no real sleeps/elapsed), and passes deterministically under load.
Finding
epignosis rate_limit::tests::rate_limiter_allows_burst_then_throttlesis timing-dependent and fails intermittently when the host is under concurrent load. It failed once during akanon gate --fullrun while other builds were saturating the machine, then passed on an immediate re-run with no code change.Evidence
crates/epignosis/src/rate_limit.rs:121— the test panicked at an assertion during a loaded gate run; the identical gate re-run (same commit) passed. The test exercises burst-then-throttle behaviour against a real time source, so scheduler jitter under load shifts the observed throttling boundary.Why this matters
A wall-clock-timing test in the workspace test suite makes
cargo nextest(a required CI check and the local gate's nextest stage) non-deterministic. Under the CI-minute ceiling, a spurious failure forces a full re-run; locally it blocks the Gate-Passed stamp on unrelated PRs (this surfaced while gating a syndesmos change that does not touch epignosis).Desired correction
Make the rate-limiter test deterministic: inject a controllable clock (a fake/mock time source or
tokio::time::pause/advance) so burst and throttle boundaries are asserted against virtual time rather than wall-clock elapsed. Audit the rest ofrate_limit.rstests for the same wall-clock dependence.Done when: the test asserts throttling against an injected clock (no real sleeps/elapsed), and passes deterministically under load.