Found by deep-audit round 7 — a cross-fix interaction between two changes that shipped in the same release.
RescuedFindingLostWriteTest's fixture uses Retry-After: 0 and documents that as meaning "the test does not sleep". #738 then made the 30-second content-creation floor apply to an explicit Retry-After as well as a derived delay, so that fixture now waits the floor on every attempt. Measured on the shipped tag: 93.96 s for a single test, 462.2 s for the class.
Nothing is wrong with either change — #738's floor is the fix #730 asked for, and the test's intent was sound when written. The fixture simply encodes an assumption that stopped being true in the same release.
Fix direction: give the fixture a throttle body that is not a content-creation block, which exercises the identical seam without the floor. The audit's own probe runs the same path in 5.7 s.
Worth doing promptly: every CI run and every local clean test is paying roughly eight minutes for this one class.
Proof: audit report AUDIT7-A (finding A3).
Found by deep-audit round 7 — a cross-fix interaction between two changes that shipped in the same release.
RescuedFindingLostWriteTest's fixture usesRetry-After: 0and documents that as meaning "the test does not sleep". #738 then made the 30-second content-creation floor apply to an explicitRetry-Afteras well as a derived delay, so that fixture now waits the floor on every attempt. Measured on the shipped tag: 93.96 s for a single test, 462.2 s for the class.Nothing is wrong with either change — #738's floor is the fix #730 asked for, and the test's intent was sound when written. The fixture simply encodes an assumption that stopped being true in the same release.
Fix direction: give the fixture a throttle body that is not a content-creation block, which exercises the identical seam without the floor. The audit's own probe runs the same path in 5.7 s.
Worth doing promptly: every CI run and every local
clean testis paying roughly eight minutes for this one class.Proof: audit report AUDIT7-A (finding A3).