19 Oct 2024 |
| jwillikers joined the room. | 12:07:52 |
23 Oct 2024 |
| quentin joined the room. | 22:45:11 |
quentin | I've been trying to get nix-fast-build running on Google Cloud Build using a Cloud Storage bucket as an s3 binary cache. I keep running into failures like:
...
copying path '/nix/store/9ip31vbkgg0lp4rx042svlllv3945nxq-stdenv-linux' from 'https://cache.nixos.org'...
copying path '/nix/store/y51zn1giz8i8da0vawfh7n1cd4pc2fby-util-linux-minimal-2.39.4-bin' from 's3://my-bucket'...
error:
… while reading the response from the build hook
error: unexpected EOF reading a line
(The package just before the error varies from build to build) Does anyone know what this error means? I found a blog post where someone mentions it online, but in their case they solved it by restarting nix-daemon, which I don't even have running.
| 22:48:10 |
24 Oct 2024 |
Mic92 | quentin: you seem to have configured a build hook in your nix.conf: https://nix.dev/manual/nix/2.24/command-ref/conf-file.html#conf-build-hook | 05:38:36 |
Mic92 |
Nix communicates with the build hook over stdio using a custom protocol to request builds that cannot be performed directly by the Nix daemon. The default value is the internal Nix binary that implements remote building.
| 05:38:59 |
quentin | In reply to @joerg:thalheim.io quentin: you seem to have configured a build hook in your nix.conf: https://nix.dev/manual/nix/2.24/command-ref/conf-file.html#conf-build-hook I haven't (intentionally, at least). This is my complete nix.conf :
extra-experimental-features = nix-command flakes
substituters = ${s3Url} https://cache.nixos.org/
require-sigs = false
| 05:40:04 |
Mic92 | derivation-goal.cc | 05:40:58 |
Mic92 | https://github.com/NixOS/nix/blob/3db75b00602a7a937c1e983e01c071100102c18c/src/libstore/build/derivation-goal.cc#L1157 | 05:41:09 |
Mic92 | Ok. I think this not like post-build-hook | 05:41:21 |
Mic92 | This is maybe used when doing remote builds? | 05:41:33 |
Mic92 | https://github.com/NixOS/nix/blob/3db75b00602a7a937c1e983e01c071100102c18c/src/libstore/unix/build/hook-instance.cc#L48 | 05:42:28 |
Mic92 | quentin: I would add more -vvvvv to your build to get more low-level output | 05:42:59 |
Mic92 | potentially also needs to be done in nix-daemon as this one might actually start this binary | 05:43:19 |
quentin | I'm not sure how to thread -vvvv through nix-fast-build | 05:43:32 |
Mic92 | use nix build directly on one of the builds that fails | 05:43:52 |
quentin | Unfortunately that succeeds | 05:43:59 |
Mic92 | mhm. ok. maybe some sort of resource depletion? | 05:44:38 |
Mic92 | Does it happen if you do nix-fast-build -j 1 ? | 05:45:13 |
Mic92 | that will run less stuff in parallel | 05:45:21 |
Mic92 | Otherwise strace -f is your friend for these kind of errors. You might want to log it to a file | 05:45:49 |
Mic92 | if you can install sysdig via programs.sysdig.enable = true in nixos, than try sysdig -c stderr | 05:46:17 |
Mic92 | for sysdig you will need root | 05:47:02 |
quentin | As I said above the builds are running on Google Cloud Build | 05:48:16 |
quentin | so no NixOS, no nix-daemon | 05:48:22 |
quentin | Just invoking nix-fast-build from within a nix-built Docker container | 05:48:46 |
Mic92 | Ok. Don't have much experience with google cloud build. Good luck | 05:50:16 |
quentin | Also there's no remote builders involved | 05:50:27 |
quentin | I was wondering if there was a race condition between the nix-eval-jobs process and the nix-build processes in local store manipulations | 05:51:06 |
quentin | In reply to @joerg:thalheim.io Does it happen if you do nix-fast-build -j 1 ? -j 1 doesn't help; it still reliably fails | 05:51:24 |
quentin | Is there any way to thread -v or --debug through nix-fast-build ? I couldn't find anything equivalent that I could put in nix.conf , for instance. | 05:51:59 |