Regression on main: Lix doesn't build on macOS #921

Closed
opened 2025-07-19 00:48:50 +00:00 by jade · 3 comments
Owner

ok commit: 8f325fe436
bad commit: 9d8ab80435

Log: https://gist.githubusercontent.com/lf-/c6466ac2ff2f7fb6c483cbf5e52afd86/raw/e432b9d8cb95b19eed1f624ed08eab32e5e41087/testlog.txt

=================================== 3/143 ====================================
test:         lix:installcheck / functional-flakes-build-paths
start time:   00:21:55
duration:     1.34s
result:       exit status 1
command:      MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=80 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_BUILD_ROOT=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /nix/store/6cpjprn4qzgsvqwxhk9jq0xcfr5k164n-python3-3.13.4-env/bin/python3 /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/meson/run-test.py flakes/build-paths.sh
----------------------------------- stdout -----------------------------------
[FAIL]
----------------------------------- stderr -----------------------------------
++(common/vars-and-functions.sh:291) trap onError ERR
+(init.sh:6) test -n /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths
+(init.sh:7) test -d /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths
+(init.sh:8) chmod -R u+w /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths
+(init.sh:10) killDaemon
+(common/vars-and-functions.sh:122) [[ '' == '' ]]
+(common/vars-and-functions.sh:123) return
+(init.sh:11) rm -rf /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths
+(init.sh:13) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths
+(init.sh:15) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/store
+(init.sh:16) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var
+(init.sh:17) mkdir -p /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/log/nix/drvs
+(init.sh:18) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/nix
+(init.sh:19) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/etc
+(init.sh:21) cat
++(init.sh:21) whoami
+(init.sh:34) cat
+(init.sh:41) nix-store --init
+(init.sh:44) test -e /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/nix/db/db.sqlite
++++(/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build/tests/functional/common/vars-and-functions.sh:291) trap onError ERR
+++(../common.sh:8) [[ -n '' ]]
++(./common.sh:3) registry=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/registry.json
+(build-paths.sh:3) flake1Dir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1
+(build-paths.sh:4) flake2Dir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2
+(build-paths.sh:6) mkdir -p /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1 /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2
+(build-paths.sh:8) writeSimpleFlake /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2
+(./common.sh:6) local flakeDir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2
+(./common.sh:7) cat
+(./common.sh:27) cp ../simple.nix ../simple.builder.sh ../config.nix /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2/
+(build-paths.sh:9) tar cfz /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz -C /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths flake2
++(build-paths.sh:10) nix hash path /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2
+(build-paths.sh:10) hash=sha256-PYC7FfxAPL8QJFHsXXhLeKqulULJ5iZRb4DF4TsyI1I=
++(build-paths.sh:12) nix store add-path ./common.sh
+(build-paths.sh:12) dep=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/store/q9dgmahz9ncn29m5jw0rvhdbfj43gzls-common.sh
+(build-paths.sh:14) cat
+(build-paths.sh:63) cp ../simple.nix ../simple.builder.sh ../config.nix /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1/
+(build-paths.sh:65) echo bar
+(build-paths.sh:67) nix build --json --out-link /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/result /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1#a1
fetching path input 'path:/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1'
fetching tarball input 'file:///nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz'
error:
       … while updating the lock file of flake 'path:/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1?lastModified=1752884516&narHash=sha256-Z3Q1FN80OGF%2BwpC8oMJOduZHw3qKKWrO4ovJ35mvulI%3D'

       … while updating the flake input 'flake2'

       … while fetching the input 'file:///nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz'

       error: failed to extract archive (Could not chdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-17135-0/flake2)
++(build-paths.sh:67) onError
++(/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build/tests/functional/common/vars-and-functions.sh:249) set +x
build-paths.sh: test failed at:
  main in build-paths.sh:67

It's possible that we also broke our own build with our own daemon changes regarding build directory permissions, based on the vibes of this error.

I'm building on 2.94.0-dev-pre20250717-ae3b8e5

ok commit: 8f325fe436d890c5c88a7206301ab61ef0071c62 bad commit: 9d8ab804355d95d38a61ad5053d415ca1882d554 Log: https://gist.githubusercontent.com/lf-/c6466ac2ff2f7fb6c483cbf5e52afd86/raw/e432b9d8cb95b19eed1f624ed08eab32e5e41087/testlog.txt ``` =================================== 3/143 ==================================== test: lix:installcheck / functional-flakes-build-paths start time: 00:21:55 duration: 1.34s result: exit status 1 command: MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=80 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_BUILD_ROOT=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /nix/store/6cpjprn4qzgsvqwxhk9jq0xcfr5k164n-python3-3.13.4-env/bin/python3 /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/meson/run-test.py flakes/build-paths.sh ----------------------------------- stdout ----------------------------------- [FAIL] ----------------------------------- stderr ----------------------------------- ++(common/vars-and-functions.sh:291) trap onError ERR +(init.sh:6) test -n /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths +(init.sh:7) test -d /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths +(init.sh:8) chmod -R u+w /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths +(init.sh:10) killDaemon +(common/vars-and-functions.sh:122) [[ '' == '' ]] +(common/vars-and-functions.sh:123) return +(init.sh:11) rm -rf /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths +(init.sh:13) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths +(init.sh:15) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/store +(init.sh:16) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var +(init.sh:17) mkdir -p /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/log/nix/drvs +(init.sh:18) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/nix +(init.sh:19) mkdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/etc +(init.sh:21) cat ++(init.sh:21) whoami +(init.sh:34) cat +(init.sh:41) nix-store --init +(init.sh:44) test -e /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/var/nix/db/db.sqlite ++++(/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build/tests/functional/common/vars-and-functions.sh:291) trap onError ERR +++(../common.sh:8) [[ -n '' ]] ++(./common.sh:3) registry=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/registry.json +(build-paths.sh:3) flake1Dir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1 +(build-paths.sh:4) flake2Dir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2 +(build-paths.sh:6) mkdir -p /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1 /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2 +(build-paths.sh:8) writeSimpleFlake /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2 +(./common.sh:6) local flakeDir=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2 +(./common.sh:7) cat +(./common.sh:27) cp ../simple.nix ../simple.builder.sh ../config.nix /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2/ +(build-paths.sh:9) tar cfz /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz -C /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths flake2 ++(build-paths.sh:10) nix hash path /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake2 +(build-paths.sh:10) hash=sha256-PYC7FfxAPL8QJFHsXXhLeKqulULJ5iZRb4DF4TsyI1I= ++(build-paths.sh:12) nix store add-path ./common.sh +(build-paths.sh:12) dep=/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/store/q9dgmahz9ncn29m5jw0rvhdbfj43gzls-common.sh +(build-paths.sh:14) cat +(build-paths.sh:63) cp ../simple.nix ../simple.builder.sh ../config.nix /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1/ +(build-paths.sh:65) echo bar +(build-paths.sh:67) nix build --json --out-link /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/result /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1#a1 fetching path input 'path:/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1' fetching tarball input 'file:///nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz' error: … while updating the lock file of flake 'path:/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake1?lastModified=1752884516&narHash=sha256-Z3Q1FN80OGF%2BwpC8oMJOduZHw3qKKWrO4ovJ35mvulI%3D' … while updating the flake input 'flake2' … while fetching the input 'file:///nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-test/flakes/build-paths/flake.tar.gz' error: failed to extract archive (Could not chdir /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/nix-17135-0/flake2) ++(build-paths.sh:67) onError ++(/nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250718-9d8ab80.drv-0/b/source/build/tests/functional/common/vars-and-functions.sh:249) set +x build-paths.sh: test failed at: main in build-paths.sh:67 ``` It's possible that we also broke our own build with our own daemon changes regarding build directory permissions, based on the vibes of this error. I'm building on 2.94.0-dev-pre20250717-ae3b8e5
Owner

apparently libarchive is being a shit if there's a -r directory in a proper prefix of the path it is told to extract into. setting +r, ie 750 in the intermediate build dir, fixes this in non-daemon tests. it's a bit unfortunate that we need to do that, but since the directory remains inaccessible to users other than the builders we don't actually lose anything

apparently libarchive is being a shit if there's a `-r` directory in a proper prefix of the path it is told to extract into. setting `+r`, ie `750` in the intermediate build dir, fixes this in non-daemon tests. it's a bit unfortunate that we need to do that, but since the directory remains inaccessible to users other than the builders we don't actually lose anything
Member

This issue was mentioned on Gerrit on the following CLs:

  • commit message in cl/3692 ("libstore: weaken tmpdir root access mode")
  • commit message in cl/3693 ("libstore: weaken tmpdir root access mode")
  • commit message in cl/3694 ("libstore: weaken tmpdir root access mode")
  • commit message in cl/3695 ("libstore: weaken tmpdir root access mode")
<!-- GERRIT_LINKBOT: {"cls": [{"backlink": "https://gerrit.lix.systems/c/lix/+/3692", "number": 3692, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/3693", "number": 3693, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/3694", "number": 3694, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/3695", "number": 3695, "kind": "commit message"}], "cl_meta": {"3692": {"change_title": "libstore: weaken tmpdir root access mode"}, "3693": {"change_title": "libstore: weaken tmpdir root access mode"}, "3694": {"change_title": "libstore: weaken tmpdir root access mode"}, "3695": {"change_title": "libstore: weaken tmpdir root access mode"}}} --> This issue was mentioned on Gerrit on the following CLs: * commit message in [cl/3692](https://gerrit.lix.systems/c/lix/+/3692) ("libstore: weaken tmpdir root access mode") * commit message in [cl/3693](https://gerrit.lix.systems/c/lix/+/3693) ("libstore: weaken tmpdir root access mode") * commit message in [cl/3694](https://gerrit.lix.systems/c/lix/+/3694) ("libstore: weaken tmpdir root access mode") * commit message in [cl/3695](https://gerrit.lix.systems/c/lix/+/3695) ("libstore: weaken tmpdir root access mode")
Owner

since the root cause is the 0710 intermediate directory the unreleased stable branches are also affected.

since the root cause is the `0710` intermediate directory the unreleased stable branches are also affected.
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/lix#921
No description provided.