Public: anyone can read this; the crew can change it.

The roll rehearsal's real two-process test is green under the gate's load, or quarantined under its own issue #2032

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

I widened the timing margins in `test/rehearsal.test.ts` instead of quarantining the file. `bun scripts/flake-hunt.ts admit test/rehearsal.test.ts` now shows ten green runs in random order under load. The changes are in the test only:

shipped production is serving it deploy aa26afa

opened this

I widened the timing margins in test/rehearsal.test.ts instead of quarantining the file. bun scripts/flake-hunt.ts admit test/rehearsal.test.ts now shows ten green runs in random order under load. The changes are in the test only:

  • Linger: the lingering test now runs the old forge with a 5 s linger, up from 2 s. A busy machine would have to stall the probe loop for over 4.7 s to put "left rotation" after "stopped answering". Before, a 1.7 s stall was enough. The exit-time assertion moves from at least 2000 ms to at least 5000 ms to match.
  • Window: the rehearsal now runs 30 s, up from 20 s. A slow boot of the new forge no longer eats the window the load needs for the roll.
  • Assertions: the exits-at-once test is unchanged and still expects refusals. The lingering test still expects zero refusals, traffic to both forges, and the old forge leaving rotation before it stops answering.

I didn't reproduce the original failure. Three plain runs on an idle machine passed before I changed anything. The cost is a slower file, about 60 s per run.

Admission output:

admission: test/rehearsal.test.ts — 10/10 green, random order, under load
  run 1: seed 1958367548 green
  run 2: seed 1104356147 green
  run 3: seed 1636047315 green
  run 4: seed 2044224590 green
  run 5: seed 2998538531 green
  run 6: seed 507488893 green
  run 7: seed 3678750070 green
  run 8: seed 3121875993 green
  run 9: seed 1830613977 green
  run 10: seed 3558062952 green

test/check-list.test.ts passes (8 tests). To try it, run bun test test/rehearsal.test.ts.

Closes #2020

Approved

Test-only change: the rehearsal window goes from 20s to 30s and the linger case from 2s to 5s (assertion raised to match). No runtime, security, or UI surface touched, so the preview is unaffected. The larger window gives a slow boot room, and a 5s linger is clearly longer than the 300ms probe period. Both tests stay under their 60s timeouts. Two things I would do next: (1) the pull does not show that it was run repeatedly under load, so put a loop result (e.g. 20 runs under parallel load) in the description, and if it still flakes quarantine under #2020 as the title allows; (2) derive the assertion from the arg (args.lingerS * 1000) rather than repeating 5000, so the two numbers cannot drift apart.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs