tests/containers-imperative: Disable useSandbox

Since 4f6df27aee, nix.useSandbox defaults
to true which causes the Nix build within the containers-imperative test
to fail while trying to hardlink files into the chroot:

link("/nix/store/foo", "/nix/store/bar.drv.chroot/nix/store/foo")
   = -1 EPERM (Operation not permitted)

The reason this happens is that the hosts store is mounted using 9p and
an overlayfs is mounted on top, so even if we would disable the tmpfs
for the upper directory the hardlink would still cross filesystem
boundaries, which then fails with the above error code.

I haven't yet seen any other test which fails in a similar way, which
might be because building within VM tests is not very common and the
installer tests build in a separate store, so they're not affected.

Signed-off-by: aszlig <aszlig@nix.build>
Issue: https://github.com/NixOS/nix/issues/2324
Cc: @aristidb, @edolstra, @chaoflow, @kampfschlaefer
This commit is contained in:
aszlig 2018-08-02 05:32:39 +02:00
parent 00ab5c5b6a
commit 6f5a86b189
No known key found for this signature in database
GPG key ID: 684089CE67EBB691

View file

@ -9,6 +9,11 @@ import ./make-test.nix ({ pkgs, ...} : {
machine =
{ config, pkgs, lib, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
# XXX: Sandbox setup fails while trying to hardlink files from the host's
# store file system into the prepared chroot directory.
nix.useSandbox = false;
virtualisation.writableStore = true;
virtualisation.memorySize = 1024;
# Make sure we always have all the required dependencies for creating a