!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

234 Members
75 Servers

Load older messages


SenderMessageTime
10 Aug 2023
@p14:matrix.orgp14But I'm not sure I'll be able to dig through it, I'm not really sure what I'm looking for. I suppose I could start by trying to identify the writes of the setup hook.13:52:54
@p14:matrix.orgp14Is there an easy way I can attach strace to the builder 🤔13:53:17
@trofi:matrix.orgtrofi I usually strace -f nix-daemon itself and see what it forks out :) 13:54:41
@p14:matrix.orgp14So to make nix use that I'd start by killing the existing daemon and then running that as root, I guess.13:55:08
@trofi:matrix.orgtrofi

AFAIU setup-hook is the file that gets passed to the derivation as an input as is: pkgs/build-support/bintools-wrapper/default.nix: ./setup-hook.sh. Make sure your store contains non-empty input file.

Then pkgs/stdenv/generic/setup.sh merges them into a single file in fixupPhase(). substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook". Something probably fails there.

13:56:34
@p14:matrix.orgp14Download setup-hook-trace.log14:01:08
@p14:matrix.orgp14A fragment of the strace where setup-hook.sh is opened for reading and /nix-support/setup-hook is opened for writing. There is a load of file descriptor dup'ing going on which complicates understanding what is happening14:02:02
@p14:matrix.orgp14I'm struggling a bit to make sense of it. The writes to fd 1 (beginning '# Binutils Wrapper hygiene') are the content which is missing, I think14:02:33
@trofi:matrix.orgtrofi You can also try to add ... .overrideDerivation(oa: { preFixup = "set -x"; }) into your expression. Will probably require slightly changing your build command to nix build --expr with import builtinsFetch.git { ... }; <your thing>`. 14:02:54
@trofi:matrix.orgtrofi * You can also try to add ... .overrideDerivation(oa: { preFixup = "set -x"; }) into your expression. Will probably require slightly changing your build command to nix build --expr 'with import builtinsFetch.git { ... }; \<your thing>\. 14:03:08
@p14:matrix.orgp14When I do set -x like that, the problem goes away14:03:11
@p14:matrix.orgp14But with the given strace, the problem is present (assuming --rebuild doesn't do something funny whereby the build functions correctly but I'd get a bad file under result/nix-support/setup-hook)14:03:57
@p14:matrix.orgp14 In the trace, /nix/store/9kaazhysw3pmzlrslpb1nsgy97hq8hlm-x86_64-unknown-linux-gnu-llvm-binutils-wrapper-15.0.7/nix-support/setup-hook in file descriptor 3 is the empty file, and the writes to file descriptor 1 are what it should contain (but it is empty). 14:04:35
@trofi:matrix.orgtrofi you can also add -y to strace to get something more readable. 14:04:38
@p14:matrix.orgp14Oh my goodness, TIL.14:04:54
@p14:matrix.orgp14Uhm, is a path of this form expected... 14:07:07
@p14:matrix.orgp14
newfstatat(AT_FDCWD</>, "/nix/store/cks0priigwh4vpbfd1p7gzy1h0jcpw0q-x86_64-unknown-linux-gnu-llvm-binutils-wrapper-15.0.7.drv.chroot/nix/store/9kaazhysw3pmzlrslpb1nsgy97hq8hlm-x86_64-unknown-linux-gnu-llvm-binutils-wrapper-15.0.7/nix-support/setup-hook", {st_mode=S_IFREG|0644, st_size=4781, ...}, AT_SYMLINK_NOFOLLOW) = 0
14:07:10
@trofi:matrix.orgtrofi ANything fancy in your extra-sandbox-paths = in /etc/nixo/nix.conf by chance? 14:07:13
@trofi:matrix.orgtrofi Yeah, You see how nix actually builds a chroot environment :) 14:07:46
@trofi:matrix.orgtrofi * Anything fancy in your extra-sandbox-paths = in /etc/nixo/nix.conf by chance? 14:07:59
@p14:matrix.orgp14
In reply to @trofi:matrix.org
Anything fancy in your extra-sandbox-paths = in /etc/nixo/nix.conf by chance?
Blank. sandbox = true. sandbox-fallback = false.
14:08:52
@p14:matrix.orgp14I have ca-derivations turned on.14:09:04
@trofi:matrix.orgtrofiLooks safe.14:09:16
@trofi:matrix.orgtrofiShould be fine (I do as well).14:09:37
@trofi:matrix.orgtrofitry to compare strace on "good" and "bad" machines. the derivations looks small enough to have a chance to be diffable.14:10:42
@trofi:matrix.orgtrofi strace also has -s 999999 flag to increase size of visible strings flying around. 14:11:28
@p14:matrix.orgp14 Phew, I think I'm going to have to take a break from this. I've not learned anything more with -y. I see the file get opened, it gets dup'd to FD 1, closed, writes go to fd1, then fd1 has something else dup'd over it. And at the end of the day I'm left with an empty file 14:13:13
@p14:matrix.orgp14The file does appear to be written to twice with identical contents, oddly.14:13:39
@p14:matrix.orgp14But not in parallel as best as I can see.14:13:51
@p14:matrix.orgp14I'm not seeing a truncate or another open which would truncate the file14:14:08

Show newer messages


Back to Room ListRoom Version: 9