-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error: not an absolute path: 'nix-archive-1' with --store
builds
#6253
Comments
I have recently parallelized my deployments. This often involves concurrent After the parallelization, I'm regularly seeing "sporadic" failures, and this is one that occurs pretty frequently.
|
this sounds strongly like a NAR parsing failure, although I don't think the same NAR should be parsed by multiple threads in parallel, or that a stream of NARs gets corrupted => so I guess missing synchronization of NAR stream parsing/handling, leading to interleaved NARs? |
We found that #6612 fixes the issue, see #6730 (comment). I don't believe we've seen the issue since in our environment. |
Correct me if I am wrong, but to me it looks like the path it takes inside This would not happen when a single copy process is active client-side since it would be preceded by a QueryValidPaths and only paths that are not valid would be part of the data sent from the client but it reproduces 100% if running two parallel |
When receiving a stream of NARs through the ssh-ng protocol, an already existing path would cause the NAR archive to not be read in the stream, resulting in trying to parse the NAR as a ValidPathInfo. This results in the error message: error: not an absolute path: 'nix-archive-1' Fixes NixOS#6253 Usually this problem is avoided by running QueryValidPaths before AddMultipleToStore, but can arise when two parallel nix processes gets the same response from QueryValidPaths. This makes the problem more prominent when running builds in parallel.
When receiving a stream of NARs through the ssh-ng protocol, an already existing path would cause the NAR archive to not be read in the stream, resulting in trying to parse the NAR as a ValidPathInfo. This results in the error message: error: not an absolute path: 'nix-archive-1' Fixes NixOS#6253 Usually this problem is avoided by running QueryValidPaths before AddMultipleToStore, but can arise when two parallel nix processes gets the same response from QueryValidPaths. This makes the problem more prominent when running builds in parallel.
When receiving a stream of NARs through the ssh-ng protocol, an already existing path would cause the NAR archive to not be read in the stream, resulting in trying to parse the NAR as a ValidPathInfo. This results in the error message: error: not an absolute path: 'nix-archive-1' Fixes NixOS#6253 Usually this problem is avoided by running QueryValidPaths before AddMultipleToStore, but can arise when two parallel nix processes gets the same response from QueryValidPaths. This makes the problem more prominent when running builds in parallel.
Regression test for NixOS#6253
Describe the bug
Occasionally builds fail with the error:
This appears to occur when copying paths back from the builder when using
--store
.I'm not sure but it also appears to occur most often when multiple builds are running in parallel. Maybe it has something to do with both builds waiting on one derivation and this somehow breaks the copy?
The issue is transient. I haven't see an issue where the first retry didn't fix it.
Steps To Reproduce
nix-build --store builder.example # or sudo nixos-rebuild boot --build-host builder.example
Expected behavior
The builds succeed reliably.
The text was updated successfully, but these errors were encountered: