compile: retry the artifact rename through a transient Windows hold - #900
Closed
colinhacks wants to merge 1 commit into
Closed
compile: retry the artifact rename through a transient Windows hold#900colinhacks wants to merge 1 commit into
colinhacks wants to merge 1 commit into
Conversation
The compile harness on the win32 CI legs intermittently fails `atomically replacing ./bin-<name>.exe with staged output` with ERROR_SHARING_VIOLATION (os error 32): an antivirus scan or the search indexer holds the freshly written executable for a moment after its last handle closes, and nothing of ours still has it open. The publish step now retries a rename that reports a sharing or lock violation with a short backoff, about 1.6s in total, and reports the attempt count when the hold outlasts it. A non-transient failure is still reported at once. graceful-fs retries a win32 rename on the same class of error for the same reason.
Contributor
|
Pullfrog stalled — likely cause: The agent stopped emitting events for 125s and was killed by the activity-timeout watchdog. 101 events were processed before the failure. Recent agent stderr
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Author
|
Superseded by #898, which retries the same publish rename with the self-probe root cause and a Windows-gated predicate. |
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.

The compile harness on the win32 CI legs intermittently fails the publish step with
atomically replacing ./bin-<name>.exe with staged output … The process cannot access the file because it is being used by another process. (os error 32). It hit #718's win32-x64 run and #583's win32-arm64 run within a few hours of each other today. An antivirus scan or the search indexer holds the freshly written executable for a moment after its last handle closes; nothing of ours still has it open.The publish step now retries a rename that reports
ERROR_SHARING_VIOLATIONorERROR_LOCK_VIOLATIONwith a short backoff (25 ms doubling to 400 ms, about 1.6 s in total) and adds the attempt count to the error when the hold outlasts it. A non-transient failure is still reported at once. graceful-fs retries a win32 rename on the same class of error for the same reason.Tests: the retry path (two violations, then the rename lands), the exhausted path (the destination is untouched and the error names the attempt count), and the existing non-transient test now asserts a single attempt.
Gates: CI's clippy invocation and
cargo test -p nub-cli --features compile --bin nub atomic_publishon a builder.