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
Check · Review · Land · Live done — Landed and live in production.
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
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
SLOWtimeout 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.tsnow keeps every deadline armed throughgateDeadlineForTestand 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.tsgives 16 pass, and the type check is clean. - What to watch: if
shared:…2tcvuk57nushows up as degraded again after this lands, the check log from that failure is the next thing to read.
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.
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.
SLOWtimeout 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.test/merge-queue.test.tsnow keeps every deadline armed throughgateDeadlineForTestand 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.src/checks/queue.ts, since the queue's behaviour is correct.bun test test/merge-queue.test.tsgives 16 pass, and the type check is clean.shared:…2tcvuk57nushows up as degraded again after this lands, the check log from that failure is the next thing to read.Closes #5734