Repository navigation
fix: clean up failed NUP extraction members - #1412
Merged
Merged
Conversation
Remove the partial member when a write or final replacement fails, while preserving any previous destination and the extraction error. Cover disk-full and replacement-denied failures followed by successful retries. Assisted-by: OpenAI Codex Co-Authored-By: Codex <noreply@openai.com>
Owner
|
This landed in the v2.0.12 branch (merged there for testing; it reaches |
Owner
|
Reopened: closing this was a mistake on my side. It was tested in the v2.0.12 branch, and it will be merged into main here, so it shows as merged. Sorry for the noise. |
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.
When NUP extraction fails while writing a member or replacing its destination, the
.partfile remains on disk. This can consume space after a disk-full error or leave a complete staging file after a denied replacement.Remove the staging file after a failed write or replacement. Preserve the previous destination and the extraction error. Completed members remain available for retry.
The game-free regression injects both a partial write followed by
ENOSPCand a denied replacement. It verifies that the staging file is gone, the previous file is intact, and a retry succeeds. Both cases fail on the old code. The NUP path, missing NUP and Builder cache suites passed locally on macOS. The full game-free workflow passed on Windows and Ubuntu in the fork.AI assistance from OpenAI Codex is recorded in the commit trailers.