guix-science
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Introducing Guix to HPC at my institution


From: Sébastien Lerique
Subject: Re: Introducing Guix to HPC at my institution
Date: Thu, 01 Apr 2021 23:34:12 +0900

Hello!

On 01 Apr 2021 at 17:35, Ludovic Courtès <ludovic.courtes@inria.fr> wrote:

Case 1: with substitutes, on a local (non-NFS) folder
-----------------------------------------------------
[snip]

Can you run guix-daemon like so?

  LC_ALL=en_US.utf8 guix-daemon --disable-chroot &

Then:

 $ guix install hello --no-offload
 [... dowloading ...]
 13.3 MB will be downloaded
substitution of /gnu/store/395pvii4bcjqxvdv7h0drq10lxi01sv1-glibc-utf8-locales-2.31 failed guix install: error: some substitutes for the outputs of derivation `/gnu/store/b2jkmg71m0dpf3i6hvskb32ra48lls28-glibc-utf8-locales-2.31.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source

Restarting from scratch and using `--fallback` then leads to the bzip2-mesboot failure of Case 2.

If, instead of resarting from scratch, I just run again `guix install hello --no-offload`, I then get:

guix install: error: got unexpected path `/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)' from substituter

And indeed once again lib/locale is a dead symlink, as the glibc-utf8-locales packaged in my tar.gz has been removed from the store. Why is that? I had a look through the same commands with --debug=4 or 5, but to no insight (aside from seeing locale derivations being deleted at some stage). I posted the end of the log produced by `guix install hello --no-offload --debug=4`, starting with the failed substitution, here: https://paste.debian.net/1191991/ .

The “unexpected substitute message” thing is a bug: it turns out that stderr of ‘guix substitute’ is consumed directly by the daemon at this
point, which it shouldn’t (similar to the issue fixed by
ee3226e9d54891c7e696912245e4904435be191c).

Ok, I'll file a bug for that then :)

Case 2: from source (no substitutes), on a local (non-NFS) folder
-----------------------------------------------------------------
[snip]

The problem is that ‘--disable-chroot’ is a bit of the wild west: build processes can access the whole file system and what you do as a user can
interfere with them.

It could be that the bzip2 build failure above is just that: the build process picks something from /usr/lib or /usr/bin, and that breaks
everything.

I think ‘--disable-chroot’ is OK if you’re going to use substitutes for almost everything. Otherwise, it’s not good. Your use case calls for built-in support; that way, the daemon could take still advantage of
user namespaces to set up a chroot and all.

I see. By the way, starting guix-daemon without `--disable-chroot` (and without substitutes) leads to:

guix build: error: cannot change ownership of ‘/gnu/store/0dn61y4n8ig333b23hmc80hvlcy8gdli-guile-bootstrap-2.0.drv.chroot’: Invalid argument

so --disable-chroot is indeed still necessary! I am interested in working on this built-in support once I get the substitutes case working (although I will probably come ask for guidance for that) :)

Thanks!
Sébastien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]