lix/src
eldritch horrors ed6b3165ea worker: process timeouts first, and exclusively
check goals for timeouts first, and their activity fds only if no
timeout has occurred. checking for timeouts *after* activity sets
us up for assertion failures by running multiple build completion
notifiers, the first of which will kill/reap the the goal process
and consuming the Pid instance. when the second notifier attempts
to do the same it will core dump with an assertion failure in Pid
and take down not only the single goal, but the entire daemon and
all goals it was building. luckily this is rare in practice since
it requires a build to both finish and time out at the same time.

writing a test for this is not feasible due to how much it relies
on scheduling to actually trigger the underlying bug, but on idle
machines it can usually be triggered by running multiple sleeping
builds with timeout set to the sleep duration and `--keep-going`:

    nix-build --timeout 10 --builders '' --keep-going -E '
      with import <nixpkgs> {};
      builtins.genList
        (i: runCommand "foo-${toString i}" {} "sleep 10")
        100
    '

Change-Id: I394d36b2e5ffb909cf8a19977d569bbdb71cb67b
2024-05-26 20:57:09 +00:00
..
build-remote Remove HintFmt::operator% 2024-03-26 15:40:05 -07:00
libcmd docstrings: NixRepl::getDerivationPath: exceptions directly thrown 2024-05-26 17:19:26 +00:00
libexpr change "evaluating file" logs to debug 2024-05-24 23:03:08 +00:00
libfetchers Merge "git putFile: support flake maximalists" into main 2024-05-26 10:16:40 +00:00
libmain packaging: rename nixexpr -> lixexpr and so on 2024-05-23 16:45:23 -06:00
libstore worker: process timeouts first, and exclusively 2024-05-26 20:57:09 +00:00
libutil Merge "packaging: rename nixexpr -> lixexpr and so on" into main 2024-05-23 23:19:28 +00:00
nix Merge "nix3-upgrade-nix: fix when there are differing pnames" into main 2024-05-25 02:20:24 +00:00
nix-build Move shell_words into its own file 2024-03-26 16:44:04 -07:00
nix-channel Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
nix-collect-garbage util.hh: split out signals stuff 2024-03-11 00:52:09 -07:00
nix-copy-closure Merge pull request #9277 from keszybz/file-permissions 2024-03-04 05:26:17 +01:00
nix-env refactor some nix-env and profile code to libcmd 2024-04-29 01:19:21 +00:00
nix-instantiate Unify and refactor value printing 2024-03-09 03:50:06 +01:00
nix-store libexpr: Support structured error classes 2024-03-09 04:47:05 -07:00
resolve-system-dependencies remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
lix-base.pc.in packaging: rename nixexpr -> lixexpr and so on 2024-05-23 16:45:23 -06:00
meson.build meson: implement functional tests 2024-03-27 18:37:50 -06:00