7bd82718e243389797383cedf9fac950eda9a83f
User locks are taken to avoid another build grabbing the same UID. Under build user contention, it is possible to recycle the same UID from another build which did not run the Goal destructor yet. Prior to this change, cgroups were destroyed at Goal destruction time, but user locks were released at `buildDone()` time. Therefore, it was possible to have 2 builds fights for the same cgroup and mess with it, resulting in confusion. To avoid this, we override `cleanupHookFinally` in charge to release the user locks and we destroy the cgroup before releasing the locks. Statistics are kept in the `cgroup` object a bit longer and can be obtained at `killSandbox(true)` time. `AutoDestroyCgroup::kill` now ignore if the cgroup path has already been destroyed, as kill is idempotent. Reported-by: Ramses <@rvdp:infosec.exchange> Reported-by: Frederico Schonborn <@fredericoschonborn:matrix.org> Change-Id: Idfbf9aaf010c5f718f2c1c38548383d912d8ee95 Signed-off-by: Raito Bezarius <raito@lix.systems>
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%