Mysterious guessOrInventPath.sockets unit test failure on macOS after libexec changes #1113

Open
opened 2026-01-31 17:41:40 +00:00 by lunaphied · 3 comments
Owner

Describe the bug

I can't build Lix as a derivation (with or without sandboxing) due to an odd test failure that seem to only occur on my machine at the moment. The log is attached but essentially it seems to be looking into the wrong path for unix-bind-connect while doing specifically guessOrInventPath.sockets unit test.

If I try to build the same revision in a development environment a seemingly related issue occurs when running the tests but in the form a timeout instead in one of the functional(2?) tests, while the unit test that was failing inside the derivation build passes fine.

The core error is

error: executing '/nix/store/zdn53j69arskzp548z046xvjp19p64k8-lix-2.95.0pre20260128-dev_56988d8/libexec/lix/unix-bind-connect': No such file or directory

Steps To Reproduce

  1. Checkout revision 56988d8605 or later of Lix.
  2. Try to build on my Darwin machine
  3. ProfitFailure.

Expected behavior

Not this.

nix --version output

nix (Lix, like Nix) 2.94.0-pre20251112-dev_78bdc60
System type: aarch64-darwin
Additional system types: x86_64-darwin
Features: gc, signed-caches
System configuration file: /etc/nix/nix.conf
User configuration files: /Users/lunaphied/.config/nix/nix.conf:/etc/xdg/nix/nix.conf
Store directory: /nix/store
State directory: /nix/var/nix
Data directory: /nix/store/40pgpdvr4gfvhx0pyc127yd5g83frca9-lix-2.94.0-pre20251112-dev_78bdc60/share

Additional context

I'm going to start bisecting this more specifically to confirm which revision introduced this more specifically but probably tomorrow.

## Describe the bug I can't build Lix as a derivation (with or without sandboxing) due to an odd test failure that seem to only occur on my machine at the moment. The log is attached but essentially it seems to be looking into the wrong path for `unix-bind-connect` while doing specifically `guessOrInventPath.sockets` unit test. If I try to build the same revision in a development environment a seemingly related issue occurs when running the tests but in the form a timeout instead in one of the functional(2?) tests, while the unit test that was failing inside the derivation build passes fine. The core error is ``` error: executing '/nix/store/zdn53j69arskzp548z046xvjp19p64k8-lix-2.95.0pre20260128-dev_56988d8/libexec/lix/unix-bind-connect': No such file or directory ``` ## Steps To Reproduce 1. Checkout revision 56988d860593a5fd8153d02a0ca5469508378626 or later of Lix. 2. Try to build on my Darwin machine 3. ~~Profit~~Failure. ## Expected behavior Not this. ## `nix --version` output ``` nix (Lix, like Nix) 2.94.0-pre20251112-dev_78bdc60 System type: aarch64-darwin Additional system types: x86_64-darwin Features: gc, signed-caches System configuration file: /etc/nix/nix.conf User configuration files: /Users/lunaphied/.config/nix/nix.conf:/etc/xdg/nix/nix.conf Store directory: /nix/store State directory: /nix/var/nix Data directory: /nix/store/40pgpdvr4gfvhx0pyc127yd5g83frca9-lix-2.94.0-pre20251112-dev_78bdc60/share ``` ## Additional context I'm going to start bisecting this more specifically to confirm which revision introduced this more specifically but probably tomorrow.
Owner

oh dear, unix sockets again 🫠 the ENOENT is likely due to the packaging not running the install phase before the check phase, so the helper isn't available yet. do you have a non-default tmpdir setting on your system? iwrc the default setting should not lead to socket paths that are long enough to require the connect helper to use

oh dear, unix sockets again 🫠 the ENOENT is likely due to the packaging not running the install phase before the check phase, so the helper isn't available yet. do you have a non-default tmpdir setting on your system? iwrc the default setting should not lead to socket paths that are long enough to require the connect helper to use
Author
Owner

I shouldn't have a non-standard tmpdir temp-dir = this is just based off the default install from https://lix.systems/install followed by updating the profile to the shown revision

I shouldn't have a non-standard tmpdir `temp-dir =` this is just based off the default install from https://lix.systems/install followed by updating the profile to the shown revision
Owner

that is super strange then. can you add a print of the generated socket path to the guessOrInventPath sockets test in lix/tests/unit/libutil/tests.cc? if it fails on your machine tht path must be longer than it is in ci, and figuring out where that difference comes from sounds pretty important right now

worst case we can disable that specific test on macos, or shuffle phases?

that is super strange then. can you add a print of the generated socket path to the guessOrInventPath sockets test in `lix/tests/unit/libutil/tests.cc`? if it fails on your machine tht path *must* be longer than it is in ci, and figuring out where that difference comes from sounds pretty important right now worst case we can disable that specific test on macos, or shuffle phases?
Sign in to join this conversation.
No milestone
No project
No assignees
2 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#1113
No description provided.