Skip to content

[Backport release-25.05] workflows/eval: disable swap#431491

Merged
wolfgangwalther merged 1 commit intorelease-25.05from
backport-431459-to-release-25.05
Aug 6, 2025
Merged

[Backport release-25.05] workflows/eval: disable swap#431491
wolfgangwalther merged 1 commit intorelease-25.05from
backport-431459-to-release-25.05

Conversation

@nixpkgs-ci
Copy link
Contributor

@nixpkgs-ci nixpkgs-ci bot commented Aug 6, 2025

Bot-based backport to release-25.05, triggered by a label in #431459.

  • Before merging, ensure that this backport is acceptable for the release.
    • Even as a non-committer, if you find that it is not acceptable, leave a comment.

Recent performance tests show that (a) swapping heavily slows down the
Eval job, while (b) lowering the chunkSize does not have an effect on
run-time. It does on memory usage, though - thus we can get rid of
swapping entirely by reducing chunkSize respectively.

(cherry picked from commit f2648b2)
@nixpkgs-ci nixpkgs-ci bot mentioned this pull request Aug 6, 2025
1 task
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 4.workflow: backport This targets a stable branch 6.topic: policy discussion Discuss policies to work in and around Nixpkgs labels Aug 6, 2025
@wolfgangwalther
Copy link
Contributor

I think the Eval / compare (pull_request) failure happens, because this tries to compare a different number of chunks between this branch and release-25.05. I have no idea why this didn't fail in the original PR, though.

@MattSturgeon
Copy link
Contributor

MattSturgeon commented Aug 6, 2025

I think the Eval / compare (pull_request) failure happens, because this tries to compare a different number of chunks between this branch and release-25.05.

Does this imply that we could have issues for PRs that are based on a commit which ran with the old chunksize, but then the PR itself (re)-runs CI with the new chunksize?

I have no idea why this didn't fail in the original PR, though.

This inconsistency is definitely confusing!

@philiptaron
Copy link
Contributor

I'm really confused.

@wolfgangwalther
Copy link
Contributor

Does this imply that we could have issues for PRs that are based on a commit which ran with the old chunksize, but then the PR itself (re)-runs CI with the new chunksize?

I don't think so. These kinds of problems normally only appear right around merge of such a change - or in the PR that does the change itself.

After a few minutes, any new workflow run will run with eval results that already include the change, both on the target branch and on the PR - so this is certainly not a problem that will persist.

I'd still like to understand what's happening, though.

@wolfgangwalther
Copy link
Contributor

Got it. Here's the thing:

Master already has a few more than 100k packages, which means it currently runs on 11 chunks before the change. release-25.05 runs on 10 chunks. Master looks like this:

Attribute count: 100877
Chunk size: 10000
Chunk count: 11

(and release-25.05 a bit less and 10)

Now, looking into the diff-xxx artifacts for this PR, we can see this for the stats:

  inflating: after/x86_64-linux/stats-by-chunk/00
  inflating: after/x86_64-linux/stats-by-chunk/01
  inflating: after/x86_64-linux/stats-by-chunk/02
  inflating: after/x86_64-linux/stats-by-chunk/03
  inflating: after/x86_64-linux/stats-by-chunk/04
  inflating: after/x86_64-linux/stats-by-chunk/05
  inflating: after/x86_64-linux/stats-by-chunk/06
  inflating: after/x86_64-linux/stats-by-chunk/07
  inflating: after/x86_64-linux/stats-by-chunk/08
  inflating: after/x86_64-linux/stats-by-chunk/09
  inflating: after/x86_64-linux/stats-by-chunk/10
  inflating: after/x86_64-linux/stats-by-chunk/11
  inflating: after/x86_64-linux/stats-by-chunk/12
  inflating: before/x86_64-linux/stats-by-chunk/0
  inflating: before/x86_64-linux/stats-by-chunk/1
  inflating: before/x86_64-linux/stats-by-chunk/2
  inflating: before/x86_64-linux/stats-by-chunk/3
  inflating: before/x86_64-linux/stats-by-chunk/4
  inflating: before/x86_64-linux/stats-by-chunk/5
  inflating: before/x86_64-linux/stats-by-chunk/6
  inflating: before/x86_64-linux/stats-by-chunk/7
  inflating: before/x86_64-linux/stats-by-chunk/8
  inflating: before/x86_64-linux/stats-by-chunk/9

We can see that once we go to 11+ chunks, the numbers become two-digit. This means the numbers were two-digit already for both before and after on master.

The result: The PR to master was able to match up some of the stats, which resulted in no error. This PR is not able to match up any of the files, the table is empty, and thus it can't be sorted by p_value.


This kind of error could theoretically also happen in the PR that moves past the 100k packages. It probably did. Now that we are for sure past 11 chunks, because of the chunkSize, we are unlikely to ever hit that again, except with a massive reduction in size of nixpkgs in terms of packages. All good.

@wolfgangwalther wolfgangwalther merged commit 65545d7 into release-25.05 Aug 6, 2025
103 of 111 checks passed
@wolfgangwalther wolfgangwalther deleted the backport-431459-to-release-25.05 branch August 6, 2025 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4.workflow: backport This targets a stable branch 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 6.topic: policy discussion Discuss policies to work in and around Nixpkgs 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants