Repository navigation
Keep condition replay drift recoverable and prepare Python 2.5.3 - #109
Merged
Merged
Conversation
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.
Change
Condition key and predicate fingerprint drift now raise
NonDeterministicReplayError, including the original wait identity, workflow sequence and mismatched definitions. The worker reports a task failure without submittingfail_workflow.Accepted updates preserve replay faults as task failures instead of permanently failing the update. Queries report unavailable state with the original replay error as their cause. Application predicate and update-handler failures retain their ordinary business-failure behavior.
The existing Server contract blocks replay failures. The documented recovery is to deploy compatible code and call
await handle.repair(). This avoids repeatedly executing an incompatible deployment and resumes the original run and history.Refs #104. Keep the issue open until exact published-package recovery and ordinary consumers are verified.
Verification
sha256:d0035cbffa5b904e5f9f7f43f84f6caf03beefc93bab8731c7e960b7a344e771). They start on an actual registry 2.5.2 producer and execute separate cold candidate processes. The incompatible condition is rejected, polling stays blocked before repair, and repair resumes the same task at attempt 2. The original run, update identity and history prefix survive. Each run completes once withoutWorkflowFailed, and accepted updates complete withoutUpdateFailed.Prepares the routine patch release 2.5.3. No wire, protocol or Server artifact change is required.