CI signal for the preallocation guard (not for upstream) - #4
Closed
msaggiorato wants to merge 3 commits into
Closed
msaggiorato wants to merge 3 commits into
msaggiorato wants to merge 3 commits into
Conversation
The test jobs no longer get past "Get programs": the open source MinIO server is archived and dl.minio.io answers every download with "410 Gone", so the wget fails and the whole matrix stops before a single test runs. Install it with go install from the last release instead, which also drops the per-OS branch and picks up the runner's own architecture rather than the amd64 build. The version is pinned next to latest_go because the repository is archived and its master branch has moved on since. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LhQ5vniAMEFx1V4PtwEuWD
msaggiorato
force-pushed
the
ci-check/preallocation-guard
branch
from
September 16, 2026 23:40
e80cd9e to
e748e93
Compare
msaggiorato
force-pushed
the
ci-check/preallocation-guard
branch
2 times, most recently
from
September 17, 2026 01:31
2ef2da3 to
8d0f176
Compare
The restorer reserves space for each file before filling it, so that writing its blobs out of order does not fragment it. Some sandboxed filesystems, seen on managed WordPress hosting, accept that syscall and never answer it, and the consequences run deeper than a slow restore: the kernel holds the inode lock while it waits, so the file can no longer be written, shortened or unlinked — unlinking it blocks in turn, and takes its directory with it — and the waiting thread cannot be interrupted, not even by SIGKILL, so the process it belongs to can never exit. A restore stopped at the first file that needed data, left it empty, and printed nothing. Making the call is therefore an irreversible commitment, and no deadline around it can take one back: by the time the deadline passes, that file and that process are already lost. Ask the filesystem beforehand instead, with a throwaway file whose name is unlinked before the call, from a process that exists only to ask — so a filesystem that never answers strands that process instead of the restore. The answer is kept per filesystem. Whether the call succeeded is not the question, only whether it came back at all: one that fails does so promptly, and the caller tolerates a failure anyway. Both callers already treat a failed preallocation as harmless and let the writes extend the file, so where the question goes unanswered, restoring simply carries on without reserving space. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017d5y4KNmm2N5ySPPH1H49Z
msaggiorato
force-pushed
the
ci-check/preallocation-guard
branch
from
September 17, 2026 01:34
8d0f176 to
67565f8
Compare
Member
Author
|
Stale: built before the Windows contract fix, and the fix has since moved to release/saucal on 0.19.1. The technique it existed for — cherry-pick the minio CI fix onto a throwaway branch to get a test matrix on a master-based branch — is now written down in SAUCAL.md. |
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.
Throwaway branch: the CI fix from #3 plus the two commits of
upstream/preallocation-guard, so the preallocation guard gets a real full-matrix run (Linux, Linux race, prev Go, macOS, Windows). The submission branch stays clean — review the fix in #2, not here.🤖 Generated with Claude Code
https://claude.ai/code/session_01LhQ5vniAMEFx1V4PtwEuWD