!sBfrWMVsLoSyFTCkNv:nixos.org

OfBorg

171 Members
Number of builds and evals in queue: <TBD>63 Servers

Load older messages


SenderMessageTime
13 Feb 2025
@emilazy:matrix.orgemily * /var is a symlink to /private/var. hmm, there was a recent bug with Nix pure/--impure evaluation and symlinks, I think 16:56:26
@emilazy:matrix.orgemilyhttps://github.com/NixOS/nix/issues/1244916:56:28
@emilazy:matrix.orgemilyprobably not this I guess16:56:35
@emilazy:matrix.orgemily (also /tmp/private/tmp, /etc/private/etc) 16:56:53
@adam:robins.wtfadamcstephens

someone on discord reported:

I can replicate this locally on my mac by building the package with --option restrict-eval true, but I'm lost for what is going on.

16:57:02
@emilazy:matrix.orgemilyis it every single build or just some of them?16:59:21
@adam:robins.wtfadamcstephensmy spot checking earlier it was affecting all16:59:41
@adam:robins.wtfadamcstephense.g. here's a curl job https://github.com/NixOS/nixpkgs/pull/381673/checks?check_run_id=3714847324517:00:02
@emilazy:matrix.orgemilywhat changed? :)17:00:07
@emilazy:matrix.orgemilyNix upgrade? OS upgrade?17:00:11
@adam:robins.wtfadamcstephens🤷‍♂️17:00:19
@adam:robins.wtfadamcstephenson the positive side, maybe we've caught the queue up? :)17:00:40
@lily:lily.flowersLily Foster (i mean something is trying to read /private during eval (readDir fuckery?) but not clear if anything changed in nixpkgs or in cppnix or in ofborg builder config for macs) 17:12:43
@emilazy:matrix.orgemily my guess is that the checkout is in /var/lib/nixpkgs or something. 17:13:11
@emilazy:matrix.orgemilyand then the second part of my guess is Nix was upgraded and caught some version of this bug17:13:27
@emilazy:matrix.orgemilybut just a guess.17:13:32
@lily:lily.flowersLily Foster

i mean that issue is that it stopped resolving symlinks on import, so wouldn't that make it less likely to trigger a bug like this?

also iirc (unless something's changed on the cppnix side), if it only says /private is forbidden in the error, then that was the full path that was attempted to be accessed (but /private could be a path after symlink resolution and if it's a line in nixpkgs then e.g. the actual import/readFile/etc call causing it may be to a symlink -- but cppnix bugs does smell likely given i can't come up with a reasonable scenario that /private would ever attempt to be imported/read)

17:21:27
@emilazy:matrix.orgemilyseems like figuring out what changes were made to ofborg's deployment between it working and breaking is the step 1 really17:22:05
@lily:lily.flowersLily Foster(update: i guess this isn't true at least for recent cppnix -- it does actually just show first path segment in certain scenarios)17:27:50
@adam:robins.wtfadamcstephensa user's tmpdir is also in /private on mac17:28:23
@adam:robins.wtfadamcstephens
➜ readlink -f $TMPDIR
/private/var/folders/y7/n0y6ndf91tn7q95rs70q2_9c0000gn/T
17:28:56
@lily:lily.flowersLily Foster(i doubt that's relevant for determining cause)17:39:19
@lily:lily.flowersLily Fosterreplicate via what command?17:39:31
@lily:lily.flowersLily Fosternever mind, found the issue17:44:33
@lily:lily.flowersLily Foster(and yeah can also confirm the cppnix error message being misleading is a >2.18 regression)17:45:43
@lily:lily.flowersLily Foster this doesn't work on macOS because /var is a symlink: https://github.com/ofborg/ofborg-infrastructure/blob/13030f577a3d110d68edfc9416382c81a09fba46/non-critical-infra/modules/ofborg/ofborg-config.nix#L78 17:46:14
@lily:lily.flowersLily Fostertracing through the call points in the ofborg code17:46:27
@lily:lily.flowersLily Foster basically it sets ofborg-nixpkgs-pr=/var/lib/ofborg/checkout/... but when it cd's to /var/lib/ofborg/checkout/... and attempts to eval ./default.nix, cppnix sees it as as /private/var/lib/ofborg/checkout/.../default.nix, which causes evaluator to throw error since only /var/lib/ofborg/checkout is in NIX_PATH 17:48:42
@lily:lily.flowersLily Foster yeah looks like cppnix does absPath on the file/dir to evaulate before sending it to evaluator: https://github.com/NixOS/nix/blob/693a38ae2e6d6bcbe39ec1d4034821d6f90cf9f5/src/nix-build/nix-build.cc#L355 17:54:31
@lily:lily.flowersLily Foster easiest "fix" to make it not explode in the case where it's configured to use a checkout dir that has a symlink in a path segment is probably to add a .canonicalize() to https://github.com/NixOS/ofborg/blob/cbf0c619db7750de1e7b575ade14d0ef35a1bde3/ofborg/src/checkout.rs#L17 17:57:19

Show newer messages


Back to Room ListRoom Version: 6