Skip to content

test(v0.49): prove exactly-once catch-up after a real deadline outage - #16

Merged
grove merged 4 commits into
issue/11-explicit-escalation-timefrom
test/v049-outage-across-deadline
Oct 21, 2026
Merged

grove merged 4 commits into
issue/11-explicit-escalation-timefrom
test/v049-outage-across-deadline

Conversation

@grove

@grove grove commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Focused v0.49 T49.06 runtime qualification: genuine outage across a due time

Dependent on React #14, based on issue/11-explicit-escalation-time. Adds a new executable negative/recovery fixture mode, tests/integrations/pg-mdm/time/audit.py IMAGE OUTPUT --outage, and invokes it using the same exact pinned MDM / pg-trickle / React binaries in the normal producer compatibility CI.

Test contract

  • Register the existing authorized MDM case with a future deadline, exact case/receipt/request/attempt/work and business/source snapshots, and original pg-react worker configuration.
  • Stop the PostgreSQL container before the deadline. Confirm it is stopped, keep PostgreSQL genuinely offline beyond the original due instant, and only then restart the service and its ordinary managed worker. No business-source edit, manual refresh, arbitrary time advancement or separate scheduler.
  • Require exactly one typed level-2 APPLIED_CONTROL MDM receipt, full canonical request/body, complete expected MDM case and source vectors, and receipt time after the new postmaster start.
  • Reuse the existing repeated managed-cycle state comparison and second cold PostgreSQL restart/no-replay proof; fail on any repeated receipt, work, attempt, case change, source mutation or worker-authorization mismatch.
  • Run the original complete React–MDM audit unchanged alongside this second, focused outage run. Both evidence directories and manifest hashes are retained.

Boundaries

This adds a one-case real overdue-while-down recovery regression, not the complete T49.06/T49.12 multi-case bounded admission/backlog/catch-up qualification, clone isolation, restore, numeric operating sign-off, or pg-trickle throughput #1168. It is not a production scheduler/runtime change, and it does not change pins, SQL grants, authorizations, MDM behavior, existing release artifacts, or acceptance limits. Preserve React #11/#12 open.

Qualification status

The initial CI on c9c5403 passed the unchanged full pinned-MDM audit, and its focused outage run reached the valid recovered control, subsequent idle convergence and second restart/no-replay assertions. Pinned run #39630983337 then failed on runner evidence bookkeeping: the successful focused run returned before recording the existing future-idle-mdm-receipt marker. The fix at d37a2dc records that marker only after all exact request/receipt checks; it does not relax assertions. A concurrent React #14 feature commit 4cda34f added a post-resume binding cold-restart regression. It is now included on this branch and merged into its ancestry at b190171 without dropping either test. Current-head pinned CI and new checks are pending. The PR remains draft until all exact-head checks succeed.

@grove grove mentioned this pull request Oct 21, 2026
5 of 12 tasks
@grove
grove marked this pull request as ready for review October 21, 2026 18:08
@grove
grove merged commit b8902a1 into issue/11-explicit-escalation-time Oct 21, 2026
7 checks passed
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.

1 participant