WS-C2 Outbox per-item timeout (hung mutation -> Retry, cannot freeze all accounts) #290

Closed
opened 2026-07-31 18:14:13 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-31 18:14:13 +00:00 (Migrated from github.com)

Size S.

Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.

Size S. Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
KofTwentyTwo commented 2026-07-31 21:31:38 +00:00 (Migrated from github.com)

Delivered via PR #349 (WS-C2, squash-merged to dev). Each outbox item's execution is bounded by a 30s PER_ITEM_EXECUTION_TIMEOUT raced against the shutdown signal in a biased select!; a timeout is dispositioned as Retry (bump retry_count, stays pending -> failed after MAX_RETRIES) and NEVER completed (no fabricated success). Shutdown interrupts a hung item immediately (left pending, disposition unknown). 3 deterministic hang tests (paused time). One hung item can no longer freeze outbox delivery for all accounts.

Delivered via PR #349 (WS-C2, squash-merged to dev). Each outbox item's execution is bounded by a 30s PER_ITEM_EXECUTION_TIMEOUT raced against the shutdown signal in a biased select!; a timeout is dispositioned as Retry (bump retry_count, stays pending -> failed after MAX_RETRIES) and NEVER completed (no fabricated success). Shutdown interrupts a hung item immediately (left pending, disposition unknown). 3 deterministic hang tests (paused time). One hung item can no longer freeze outbox delivery for all accounts.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#290