[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