[Nix-dev] Hydra: infinite CPU and RAM consumption in evaluator
Christian Kauhaus
kc at flyingcircus.io
Thu Jan 19 16:18:13 CET 2017
Am 19.01.2017 um 11:12 schrieb Christian Theune:
> Nevertheless, it looks like we may have introduced poisonous code that sends
> the evaluator off into infinity. We’ll come back when we find out what it was.
I got it and I would like to share my findings.
We introduced a change that imported an item "nginxModules" into all-packages:
https://github.com/flyingcircusio/nixpkgs/blob/2926129b8940e880a7745e44df511a3d6adacfa9/nixos/modules/flyingcircus/packages/all-packages.nix#L59
The problem was that (1) this import returnes an attrset or attrsets (none
containing a derivation) and that our all-packages gets imported entirely into
our Hydra master job so that all of our custom packages are guaranteed to be
built:
https://github.com/flyingcircusio/nixpkgs/blob/fc-15.09-dev/nixos/release-flyingcircus.nix#L121
This construct seems to send Hydra's evaluator into nowhere land.
After removing the "nginxModules" attribute, everything seems to be fine again:
https://github.com/flyingcircusio/nixpkgs/blob/fc-15.09-dev/nixos/modules/flyingcircus/packages/all-packages.nix#L54
I don't understand the exact reason. My expectation would be that Hydra's
evaluator ignores attrsets defining no derivations (analogous to a Nix
expression like `collect isDerivation nixpkgs`. Obviously, it doesn't exactly
do so. But hey, now it's running again. :-)
Regards
Christian
--
Dipl-Inf. Christian Kauhaus <>< · kc at flyingcircus.io · +49 345 219401-0
Flying Circus Internet Operations GmbH · http://flyingcircus.io
Forsterstraße 29 · 06112 Halle (Saale) · Deutschland
HR Stendal 21169 · Geschäftsführer: Christian Theune, Christian Zagrodnick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.science.uu.nl/pipermail/nix-dev/attachments/20170119/21ebdcce/attachment.sig>
More information about the nix-dev
mailing list