1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-07 14:21:48 +02:00

Kill builds when we get EOF on the log FD

This closes a long-time bug that allowed builds to hang Nix
indefinitely (regardless of timeouts) simply by doing

  exec > /dev/null 2>&1; while true; do true; done

Now, on EOF, we just send SIGKILL to the child to make sure it's
really gone.
This commit is contained in:
Eelco Dolstra 2017-01-19 16:58:39 +01:00
parent 63e10b4d28
commit 21948deed9
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
6 changed files with 40 additions and 40 deletions

View file

@ -17,4 +17,12 @@ with import ./config.nix;
'';
};
closeLog = mkDerivation {
name = "silent";
buildCommand = ''
exec > /dev/null 2>&1
sleep 1000000000
'';
};
}

View file

@ -24,3 +24,8 @@ if nix-build timeout.nix -A silent --max-silent-time 2; then
echo "build should have failed"
exit 1
fi
if nix-build timeout.nix -A closeLog; then
echo "build should have failed"
exit 1
fi