| 10 Aug 2023 |
p14 | Oh my goodness, TIL. | 14:04:54 |
p14 | Uhm, is a path of this form expected...
| 14:07:07 |
p14 | 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 | ANything fancy in your extra-sandbox-paths = in /etc/nixo/nix.conf by chance? | 14:07:13 |
trofi | Yeah, You see how nix actually builds a chroot environment :) | 14:07:46 |
trofi | * Anything fancy in your extra-sandbox-paths = in /etc/nixo/nix.conf by chance? | 14:07:59 |
p14 | 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 | I have ca-derivations turned on. | 14:09:04 |
trofi | Looks safe. | 14:09:16 |
trofi | Should be fine (I do as well). | 14:09:37 |
trofi | try to compare strace on "good" and "bad" machines. the derivations looks small enough to have a chance to be diffable. | 14:10:42 |
trofi | strace also has -s 999999 flag to increase size of visible strings flying around. | 14:11:28 |
p14 | 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 | The file does appear to be written to twice with identical contents, oddly. | 14:13:39 |
p14 | But not in parallel as best as I can see. | 14:13:51 |
p14 | I'm not seeing a truncate or another open which would truncate the file | 14:14:08 |
trofi | Yeah, odd stuff might happen on nix-daemon side later. | 14:15:05 |
p14 | Furthermore, I actually see another process read 4781 bytes from /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. | 14:15:27 |
p14 | So I'm left thinking that something corrupted the file as it was being put into the store | 14:15:42 |
p14 | And --rebuild isn't doing what I would expect to detect/fix the corruption | 14:16:02 |
trofi | I think --rebuild never replaces files already present in store. | 14:16:33 |
p14 | But should it not compare them at least?# | 14:16:49 |
p14 | If it's comparing them and saying everything is OK, that suggests the corruption may be happening before the compare and is reproducible | 14:17:02 |
trofi | Ah, that's a good point. Yeah, file comparison should happen. | 14:17:03 |
p14 | I'm not seeing evidence in the trace log of a comparison happening | 14:17:26 |
p14 | Though I'm only tracing daemon side.. | 14:17:32 |
p14 | No evidence of files being opened client side either. | 14:19:14 |
p14 | So I think --rebuild is not functioning as I'd expect(?!) | 14:19:23 |
trofi | It should compare narHash: https://github.com/NixOS/nix/blob/master/src/libstore/build/local-derivation-goal.cc#L2640 | 14:20:08 |
trofi | Which means you probably build the result as expected, but on disk /nix/store path is corrupted on disk. But it's hash is never calculated and is fetched from database instead. | 14:26:01 |