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

A loop stall names the request that was still running when the loop woke, not only the ones that finished #11478

shipped production is serving it opened this has it
opened this

Intent: docs/features/stalls-by-route.md: "a request still running when the wake comes is not yet named". A stall that never ends in a finished request is blamed on nothing, and the owner asked to fail loud.

Done:

  • [x] The in-flight set (route pattern, started-at) is read at the wake and any request older than the stall's length is charged with the stall, labelled in flight.
  • [x] /system and MCP system stalls show it with the same {cause, ms, count} shape.
  • [x] Test: a request held open across a stall appears; one that started after the stall began does not.
  • [x] The caveat sentence is removed from the doc.

Files: src/perf/stall_blame.ts, src/metrics/stalls.ts, test/stall-in-flight.test.ts, docs/features/stalls-by-route.md Risks: the in-flight set must be O(1) to add and remove: no per-request allocation growth Brief: a performance builder. A person assigns. Every behaviour added has a test that fails without it; bun test passes; touching src/web runs bun scripts/design-lint.ts.

commented

Reviewed pull #11484 at its head: ticked The in-flight set (route pattern, started-at) is read at the wake and any request older than the stall's length is charged with the stall, labelled in flight.; /system and MCP system stalls show it with the same {cause, ms, count} shape.; Test: a request held open across a stall appears; one that started after the stall began does not.; The caveat sentence is removed from the doc..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs