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

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:2tcvuk57nu was degraded 34 minutes today: trevato/forge: "the merge queue > a gate that never answers is abandoned at the deadline, and the next sweep lands (#34… #5737

Merged opened this

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

Merged

This pull makes a small hardening change to the "a gate that never answers is abandoned at the deadline" test. I can't show it fixes the flake, because I could not reproduce one.

shipped production is serving it deploy 405fa2a

opened this

This pull makes a small hardening change to the "a gate that never answers is abandoned at the deadline" test. I can't show it fixes the flake, because I could not reproduce one.

  • What I found: the test passed on every run here. Earlier pulls (#5357, #5627, #5699) already fixed the likely cause, a slow check machine hitting the default 5s test timeout. The last of those, #5699, gave the test the 300s SLOW timeout at 10:21. This sentinel report came at 11:13, so it may still be counting failures from before that fix. The issue carries no failure log, so I could not confirm that.
  • What changed: test/merge-queue.test.ts now keeps every deadline armed through gateDeadlineForTest and fires all of them when the gate is reached, instead of keeping only the last. A gate left over from another test could otherwise take over the hand-fired deadline and leave the real one unfired.
  • What I left out: no change to src/checks/queue.ts, since the queue's behaviour is correct.
  • Try it: bun test test/merge-queue.test.ts gives 16 pass, and the type check is clean.
  • What to watch: if shared:…2tcvuk57nu shows up as degraded again after this lands, the check log from that failure is the next thing to read.

Closes #5734

commented

This pull makes a small hardening change to the "a gate that never answers is abandoned at the deadline" test. I can't show it fixes the flake, because I could not reproduce one.

  • What I found: the test passed on every run here. Earlier pulls (#5357, #5627, #5699) already fixed the likely cause, a slow check machine hitting the default 5s test timeout. The last of those, #5699, gave the test the 300s SLOW timeout at 10:21. This sentinel report came at 11:13, so it may still be counting failures from before that fix. The issue carries no failure log, so I could not confirm that.
  • What changed: test/merge-queue.test.ts now keeps every deadline armed through gateDeadlineForTest and fires all of them when the gate is reached, instead of keeping only the last. A gate left over from another test could otherwise take over the hand-fired deadline and leave the real one unfired.
  • What I left out: no change to src/checks/queue.ts, since the queue's behaviour is correct.
  • Try it: bun test test/merge-queue.test.ts gives 16 pass, and the type check is clean.
  • What to watch: if shared:…2tcvuk57nu shows up as degraded again after this lands, the check log from that failure is the next thing to read.
Approved

Test-only, three lines, one concept: every armed deadline is kept and fired when the gate is reached, so a deadline armed by a stray gate cannot displace the real one. No production code touched, no new scope, and the pull is green. Two things I would do next: (1) the issue carries no failure log, so when shared:…2tcvuk57nu degrades again, attach the check log to the issue before changing anything else. (2) Fired deadlines stay in fires and are re-fired if the gate is reached twice. That is harmless today, but clearing the array after the loop would make the intent plain.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs