Skip to content

fix(submitqueue): preserve conclude dead-letter outcomes - #1041

Draft
sbalabanov wants to merge 1 commit into
wt/sqc009from
wt/sqc014
Draft

sbalabanov wants to merge 1 commit into
wt/sqc009from
wt/sqc014

Conversation

@sbalabanov

@sbalabanov sbalabanov commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Share primary conclusion's terminal member reconciliation with a dedicated
conclude final handler. Preserve the batch outcome, repair terminal membership,
and retain non-terminal, missing, malformed, or partially completed work.

Repro

  1. Dead-letter conclusion after a Succeeded or Cancelled batch has only partly reconciled its members.
  2. Replay the preserved BatchID through conclude_dlq; the batch outcome must remain unchanged and member states/logs must match it.
  3. Fail a later member's log publication and retry; completed members replay their original diagnostics without overwriting a different terminal winner.

Test Plan

TestConcludeFinalBinding runs the actual pipeline final consumer and verifies
log replay on success and Nack retention of incomplete obligations.
TestDLQConcludeController_TerminalOutcomes checks all three outcome mappings;
TestDLQConcludeController_ReplaysPartialFanout proves persisted diagnostics
survive a member log failure and replay without overwriting another winner.

Revert Plan

Pause conclude final processing before reverting. Retain final queue records
and request logs; do not reinterpret stored terminal outcomes as failures.

Issues

Summary:
Share primary conclusion's terminal member reconciliation with a dedicated
conclude final handler. Preserve the batch outcome, repair terminal membership,
and retain non-terminal, missing, malformed, or partially completed work.

Test Plan:
TestConcludeFinalBinding runs the actual pipeline final consumer and verifies
log replay on success and Nack retention of incomplete obligations.
TestDLQConcludeController_TerminalOutcomes checks all three outcome mappings;
TestDLQConcludeController_ReplaysPartialFanout proves persisted diagnostics
survive a member log failure and replay without overwriting another winner.

Revert Plan:
Pause conclude final processing before reverting. Retain final queue records
and request logs; do not reinterpret stored terminal outcomes as failures.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants