Skip to content

fix(service-links): keep verified rotation in one serializable snapshot - #135

Merged
Proxicon merged 6 commits into
mainfrom
correction/service-link-lifecycle-snapshot-boundary-beta16
Oct 7, 2026
Merged

Proxicon merged 6 commits into
mainfrom
correction/service-link-lifecycle-snapshot-boundary-beta16

Conversation

@Proxicon

@Proxicon Proxicon commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Summary

A valid verified rotation can receive HTTP 409 when the production worker advances the link after the recipient reads it and before the recipient opens its transaction. Begin the owned Serializable transaction before reading current authority and the link, so PostgreSQL can reject the stale snapshot and the existing bounded 40001 retry can repeat the operation in a fresh scope. Authorization, phase, payload and replay checks share that snapshot; caller-owned transactions keep their ownership.

The regression commits real production worker progress during the recipient read. Old production returns 409 after the interleaving assertions pass; the corrected source observes one real 40001, retries through two fresh Serializable contexts and commits one activation and journal entry. Exact replay and changed-body rejection preserve the durable result.

Targets RatelDesk 0.1.1-beta.16; the initial version-choice preflight found its tag, release and image tags unused. NetRatel remains targeted at v0.1.1-beta.1. Refs #119 and BostonTechnologies/netratel#141. Deployed owner acceptance remains pending.

Validation

  • At 5add3025: existing test project Release compile, targeted regression and all 8 serialization-file cases passed, including the original real PostgreSQL retry/rollback/replay cases.
  • At reviewed f93f43af58f9790ba2790cefc6514158adeb7d74: required full Helpdesk.sln Release build passed, and the ordinary unfiltered full solution report completed with 2,076 passed, zero failed and six unchanged legacy skips. All 8 serialization-file cases and all 89 lifecycle-class cases passed.

The complete test report and log are retained. The local task session was interrupted after the report completed; its original wait receipt was lost. This does not substitute for the fresh hosted checks below.

  • Fresh PR and Main checks: all 17 required checks pending.
  • Hosted prerelease: all 9 checks, native interoperability and public assets/images pending.

Local results retain their listed source scope. No beta.16 release has been created from this work. The existing retry limit, PostgreSQL classification, caller transaction ownership, auth contracts, job identities and deadlines are preserved.

Disclosure check

  • No credentials, personal data, private URLs or deployment identifiers are included.

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