Repository navigation
fix(service-links): keep verified rotation in one serializable snapshot - #135
Merged
Proxicon merged 6 commits intoOct 7, 2026
Merged
Conversation
added 6 commits
October 7, 2026 00:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 atv0.1.1-beta.1. Refs #119 and BostonTechnologies/netratel#141. Deployed owner acceptance remains pending.Validation
5add3025: existing test project Release compile, targeted regression and all 8 serialization-file cases passed, including the original real PostgreSQL retry/rollback/replay cases.f93f43af58f9790ba2790cefc6514158adeb7d74: required fullHelpdesk.slnRelease 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.
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