9a8f111af2dcba6620636074a831b248e72b50b5
My lix build failed today with this result: ``` lix> [----------] 3 tests from MonitorFdHup lix> [ RUN ] MonitorFdHup.works lix> [ OK ] MonitorFdHup.works (0 ms) lix> [ RUN ] MonitorFdHup.works_with_pipes lix> stderr: lix> Using configuration: seed=6402097764877502971 lix> libc++abi: terminating due to uncaught exception of type std::__1::future_error: The state of the promise has already been set. lix> 4/5 lix:check / libstore-unit-tests OK 1.10s lix> 5/5 lix:check / libexpr-unit-tests OK 1.12s lix> Summary of Failures: lix> 3/5 lix:check / libutil-unit-tests FAIL 0.93s killed by signal 6 SIGABRT lix> Ok: 4 lix> Fail: 1 lix> Full log written to /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250711-65ef28d.drv-0/source/build/meson-logs/testlog.txt ``` I had a response best described as "wtf". I think the cause of this problem is that there's a race condition with the test in which the loop gets gone around again a second time because it's triggered by the terminate fd (and I guess the flags remained what they were before? seems reasonable), and this is probably racing with the quit atomic being first to break out of the loop. I don't know how many hundreds of lixes I've compiled without my test failing, but this is definitely a bug. I don't think this affects actual usage as the only impact is repeat delivery of Ctrl-C which is harmless and which users do regularly. Change-Id: I60da81d4ac2e79052cd323b5171f9d8bd0aa6783
Lix
Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.
Read more about us at https://lix.systems.
Installation
On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):
$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install
For systems that already have a Nix implementation installed, such as NixOS systems, read our install page
Building And Developing
See our Hacking guide in our manual for instruction on how to set up a development environment and build Lix from source.
Additional Resources
- The Lix reference manual:
- Our wiki
- Matrix - #space:lix.systems
License
Lix is released under LGPL-2.1-or-later.
Description
Working fork of Lix - carries the adaptive load-aware build-remote patch. Upstream: gerrit.lix.systems
92 MiB
Languages
C++
74.9%
Python
11.7%
Nix
6.1%
Shell
3.6%
Meson
2%
Other
1.6%