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

Remove the sendDerivation logic from the builder #874

Merged
merged 1 commit into from
Feb 23, 2021

Conversation

thufschmitt
Copy link
Member

The queue runner used to special-case localhost as a remote builder: Rather than using the normal remote-build (using the cmdBuildDerivation command), it was using the (generally less efficient, except when running against localhost) cmdBuildPaths command because the latter didn't require a privileged Nix user (so made testing easier − allowing to run hydra in a container in particular).

However:

  1. this means that the build loop can follow two discint code paths depending on the setup, the irony being that the most commonly used one in production (the “non-localhost” case) isn't the one used in the testsuite (because all the tests run against a local store);
  2. It turns out that the “localhost” version is buggy in relatively obvious ways − in particular a failure in a fixed-output derivation or a hash mismatch isn't reported properly;
  3. If the “run in a container” use-case is indeed that important, it can be (partially) restored using a chroot store (which wouldn't behave excactly the same way of course, but would be more than good-enough for testing)

The queue runner used to special-case `localhost` as a remote builder:
Rather than using the normal remote-build (using the
`cmdBuildDerivation` command), it was using the (generally less
efficient, except when running against localhost) `cmdBuildPaths`
command because the latter didn't require a privileged Nix user (so made
testing easier − allowing to run hydra in a container in particular).

However:
1. this means that the build loop can follow two discint code paths depending
   on the setup, the irony being that the most commonly used one in production
   (the “non-localhost” case) isn't the one used in the testsuite (because all
   the tests run against a local store);
2. It turns out that the “localhost” version is buggy in relatively obvious
   ways − in particular a failure in a fixed-output derivation or a hash
   mismatch isn't reported properly;
3. If the “run in a container” use-case is indeed that important, it can be
   (partially) restored using a chroot store (which wouldn't behave excactly
   the same way of course, but would be more than good-enough for testing)
@edolstra edolstra merged commit e072c1d into NixOS:master Feb 23, 2021
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/tweag-nix-dev-update-8/11758/1

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

Successfully merging this pull request may close these issues.

3 participants