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

buildbot errors #1878

Closed
zowoq opened this issue Jul 17, 2024 · 6 comments
Closed

buildbot errors #1878

zowoq opened this issue Jul 17, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@zowoq
Copy link
Contributor

zowoq commented Jul 17, 2024

pkgs.linkFarm "nixvim-tests" derivationList

The problem seems to be the linkfarm test that was added in #892, it is using a lot of memory.

This should dramatically reduce the build time on buildbot.

@GaetanLepage Do you recall the details of this problem, we may be able to find another way of addressing it?

cc @Mic92

@zowoq zowoq added the bug Something isn't working label Jul 17, 2024
@Mic92
Copy link
Member

Mic92 commented Jul 17, 2024

The issue here is that one derivation depends on all derivations. So effectively everything gets evaluated twice

@GaetanLepage
Copy link
Member

@GaetanLepage Do you recall the details of this problem, we may be able to find another way of addressing it?

Yes, so I made that change for the following reason. Our test suite has one derivation per configuration we want to test.
Thus, as we have 2-3 test cases per plugin, and more than 100 plugins, this corresponded to several hundreds of test derivations per architecture.
So basically, build-bot was getting flood and couldn't keep up with that many derivations (+ it was making the UI unusable as well).

@traxys
Copy link
Member

traxys commented Jul 17, 2024

The issue is that in the end our tests require a derivation each (as we launch neovim with the supplied configuration). Would launching each plugin (so ~100 derivations) independently be less though on buildbot?
(Each of the derivations would be dependent on 2 to 4 other derivations on average)

@MattSturgeon
Copy link
Member

(Each of the derivations would be dependent on 2 to 4 other derivations on average)

So effectively a tree of link farm derivations?

In total we'd have more derivations, but maybe having a tree structure would be easier on buildbot?

As another approach, would it be easier on buildbot if we split up our checks.*.tests output into several checks.*.test-* outputs?

Currently checks.*.tests is the link farm derivation that has hundreds of dependencies.

Worth noting: while we have many wrapped nvim test derivations, they should all be wrapping the same nvim package derivation, so that should only need to be built/downloaded once.

@GaetanLepage
Copy link
Member

GaetanLepage commented Jul 17, 2024

So effectively a tree of link farm derivations?

Yes, what matters for build-bot is the number of top-level derivations. In this sense, it is better to have ~60 total top-level derivations (what we have now) rather than ~600+ that we would have without the linkFarm.

@zowoq
Copy link
Contributor Author

zowoq commented Jul 20, 2024

I've disabled buildbot on this repo for now.

Even after the recent changes it's still using a lot of memory, can reproduce it by running the eval manually:

nix run nixpkgs#nix-eval-jobs -- --workers 1 --check-cache-status --force-recurse --flake 'github:nix-community/nixvim#checks'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants