discord engine test 'timed-out run pi did start outlives the grace' flakes under load #1553

Open
opened 2026-10-10 18:28:09 +00:00 by jarvis · 0 comments
Contributor

Found by Sage's row 53 gate rerun on 2026-10-10 (worktree on 2d4d4e7d plus the row 53 candidate, every suite run in sequence).

scripts/test-discord.sh failed one test once:

✖ engine: a timed-out run pi did start outlives the grace; the next prompt goes out when it ends (250.553773ms)
  Error [DiscordError]: engine stopped: pi did not start an aborted turn

The suite passed 66/0 when rerun on its own straight after. Row 53 changes only packages/webui.

The test (packages/discord/tests/engine.test.mjs:278) sends late 400 with timeoutMs: 50 and abortGraceMs: 150. It expects the fake pi to have started the turn within that time. Under load from the other suites the fake pi can start late, the engine decides pi never started the aborted turn, and it stops. Same class as the conversation K12 cgroup flake noted at row 56.

Fix direction: drive the timeout and grace from the fake's own "turn started" signal, or widen the margins so scheduler delay can't cross them, without weakening what the test proves. Owner and row to be assigned after the Q14 hold ends.

Found by Sage's row 53 gate rerun on 2026-10-10 (worktree on 2d4d4e7d plus the row 53 candidate, every suite run in sequence). `scripts/test-discord.sh` failed one test once: ``` ✖ engine: a timed-out run pi did start outlives the grace; the next prompt goes out when it ends (250.553773ms) Error [DiscordError]: engine stopped: pi did not start an aborted turn ``` The suite passed 66/0 when rerun on its own straight after. Row 53 changes only `packages/webui`. The test (`packages/discord/tests/engine.test.mjs:278`) sends `late 400` with `timeoutMs: 50` and `abortGraceMs: 150`. It expects the fake pi to have started the turn within that time. Under load from the other suites the fake pi can start late, the engine decides pi never started the aborted turn, and it stops. Same class as the conversation K12 cgroup flake noted at row 56. Fix direction: drive the timeout and grace from the fake's own "turn started" signal, or widen the margins so scheduler delay can't cross them, without weakening what the test proves. Owner and row to be assigned after the Q14 hold ends.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1553