Repository navigation
Conversation
This branch has not been deployed
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.
Closes #88
Apply one deadline to nonblocking reads from both Docker-save pipes, stream gzip output, and retain a bounded 16 KiB stderr tail. On failure, terminate the owned process group, close the parent pipe ends, and reap the save process. File and byte uploads now reuse the existing attempt-isolated locator scheme so a failed document insert cannot block the next publication.
Measured with local subprocesses and real SQLite/filesystem stores. Tests cover stalled stdout, saturated stderr, surviving descendants, compression errors, valid 16 MiB gzip output, concurrent writes, and both file-upload APIs.
Only newly published object locators change. Existing saved locators still load. Failed publication can leave an isolated object; this change makes retry safe rather than adding garbage collection.
Validation: 6,332 unit/protocol tests passed, 13 existing capability skips; plugin API check passed. Independent correctness and maintainability reviews are clean. Docker/cloud integration remains for CI.
The PR appears safe to merge; the earlier publication hang and cleanup findings are addressed.
What we checked:
Summary
Docker image saves now use one deadline and clean up failed archives. File uploads use a fresh object location for each attempt, so a failed document write does not block a retry.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR A[Start Docker save] --> B[Read stdout and stderr] B --> C[Write gzip archive] C --> D{Save finished in time?} D -- Yes --> E[Publish archive] D -- No --> F[Kill and reap save] F --> G[Remove temporary archive]Reviews (3) · Last reviewed commit: "fix(artifact): enforce deadlines for inh..." · Reviewed by Greptile