Repository navigation
Repair recurring naming history overflow and dead server queue fences - #695
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.
Recurring naming could stop even though its scheduler kept running: accumulated inline execution diagnostics exceeded MongoDB’s conversation document limit, and an occurrence interrupted by deployment retained the active-task fence indefinitely.
This change offloads the large duplicated execution records using existing blob storage and hydration, and backfills individual entries with compare-and-set updates so concurrent messages and edits survive. The existing queue dispatcher now reconciles expired attempts only when their local owning PID is demonstrably gone. It preserves completed response receipts, otherwise records an interrupted execution without replaying uncertain effects, and releases the task/conversation fence.
Validation: 97 targeted history/blob/queue/dispatcher tests pass, including lossless hydration, concurrent append/edit preservation, live and foreign-host exclusion, inaccessible process exclusion, and repeat reconciliation. Live naming-history repair and deployment verification are being retained in the native task.
Task: #V#task_agent_0ece48d8efbb22e59458be6446e1bf85
Scope: fixes the observed diagnostic-growth case. It does not introduce a universal unbounded transcript store or automatically replay interrupted external effects. Remote-host or reused PID ownership remains conservatively unreconciled.