Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow aggregate jobs to be created from a list of job names #715

Closed
edolstra opened this issue Feb 13, 2020 · 3 comments
Closed

Allow aggregate jobs to be created from a list of job names #715

edolstra opened this issue Feb 13, 2020 · 3 comments

Comments

@edolstra
Copy link
Member

Evaluating an aggregate job takes as much memory as the sum of its constituents - no constituent expression can be garbage-collected while the top-level expression is reachable. For example, the tested job in NixOS's release-combined.nix takes > 12 GB.

As an alternative, we could support aggregates to be specified as a list of job names, e.g.

{
  tested = {
    type = "hydraAggregate";
    constituents =
      [ "nixos.iso_plasma5.x86_64-linux"
        "nixos.iso_minimal.aarch64-linux"
        ...
      ];
  };
}

hydra-eval-jobset can then lookup the constituent's in the JSON output of hydra-eval-jobs and create a derivation that depends on the drvPaths of the constituents.

@vcunat
Copy link
Member

vcunat commented Feb 18, 2020

Well, we do have evaluation now, but the tested jobsets get aborted after all constituents succeeding (example link). For unstable-small it started in the small range 1e0222cd1f6..895042956f2 containing the change, so it seems clear to have triggered the problem.

EDIT: logs in the web UI show nothing, so I can't see how to push this forward myself.

@edolstra
Copy link
Member Author

Looks like we're generating a bad derivation (...drv.drv).

@edolstra
Copy link
Member Author

Fixed in NixOS/nix@edee616.

hamishmack added a commit to input-output-hk/haskell.nix that referenced this issue Jan 6, 2021
hamishmack added a commit to input-output-hk/haskell.nix that referenced this issue Jan 6, 2021
This requires explicitly identifying the things tht don't work and
removing them. I used our own `disabled` attribute, because `broken` is
weird and breaks evaluation, which isn't really what we want.

Cuts the number of jobs from over 2000 to 216. This seems to greatly
speeds up the time it takes small changes (where most stuff remains the
same) to be processed by hydra.

Uses NixOS/hydra#715 to reference the
jobs in required by name avoiding OOM issues.

Co-authored-by: Hamish Mackenzie <[email protected]>
booniepepper pushed a commit to booniepepper/haskell.nix that referenced this issue Feb 4, 2022
This requires explicitly identifying the things tht don't work and
removing them. I used our own `disabled` attribute, because `broken` is
weird and breaks evaluation, which isn't really what we want.

Cuts the number of jobs from over 2000 to 216. This seems to greatly
speeds up the time it takes small changes (where most stuff remains the
same) to be processed by hydra.

Uses NixOS/hydra#715 to reference the
jobs in required by name avoiding OOM issues.

Co-authored-by: Hamish Mackenzie <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants