using guix to install packages from inside a container that runs on foreign distro breaks guix and the foreign distro

  • Open
  • quality assurance status badge
Details
2 participants
  • david larsson
  • Ludovic Courtès
Owner
unassigned
Submitted by
david larsson
Severity
important
D
D
david larsson wrote on 1 Jan 2021 18:02
(address . bug-guix@gnu.org)
3074bf88649cfd70823e7993f76460f6@selfhosted.xyz
Hi!

using guix to install packages from inside a container that runs on
foreign distro breaks guix and the foreign distro, see below:


Steps to reproduce:

The below system was instantiated witg guix system container
this_file.scm --network

upon starting it with sudo /gnu/store/asdfasdfasdf-run-container


and connecting to it with

sudo guix container exec 8625 /run/current-system/profile/bin/bash
--login
[sudo] password for david:
root@MinimalSSH /#
root@MinimalSSH /#
root@MinimalSSH /# guix package -i hello
guix package: warning: Consider running 'guix pull' followed by
'guix package -u' to get up-to-date packages and security updates.

The following package will be installed:
hello 2.10

substitute: updating substitutes from 'https://ci.guix.gnu.org'...
100.0%
13.0 MB will be downloaded
substitute: updating substitutes from 'https://ci.guix.gnu.org'...
100.0%
downloading from
...
glibc-utf8-locales-2.31 376KiB 1.0MiB/s 00:00
[##################] 100.0%

downloading from
...
bash-static-5.0.16 625KiB 1.5MiB/s 00:00
[##################] 100.0%

downloading from
...
libx11-1.6.A-doc 1.2MiB 1.6MiB/s 00:01
[##################] 100.0%

error: executing
`/gnu/store/qyjhy4bkz51jyspi63llfznsnz7vibzy-guix-1.1.0-30.875c01f/bin/guix
substitute': No such file or directory
guix package: error: unexpected EOF reading a line
root@MinimalSSH /#
root@MinimalSSH /# exit
logout
guix container: error: exec failed with status 1
david@l560:~/VirtualHome/src$ guix package -i hello
bash: /usr/local/bin/guix:
/gnu/store/b7rixb64yp00znz0d5rwd5zzklwzlzmv-guile-wrapper/bin/guile: bad
interpreter: No such file or directory
david@l560:~/VirtualHome/src$
-----------------------

As you can see, guix is now broken on both the host and guest system.

-----------------------

;; guix system container /path/to/this/file.scm --network
;; don't forget --network
(use-modules (gnu) (gnu system nss) (gnu packages))
(use-service-modules networking ssh desktop spice cuirass
virtualization)
(use-package-modules screen ssh gnome certs bash)

(define %cuirass-specs
#~(
;; spec two
list
'((#:name . "my-pkgs")
(#:load-path-inputs . ("guix"))
(#:package-path-inputs . ("my-guix-packages"))
(#:proc-input . "guix")
(#:proc-file . "build-aux/cuirass/gnu-system.scm")
(#:proc . cuirass-jobs)
(#:proc-args .
((subset . "manifests")
(systems . ("x86_64-linux"))
(manifests . (("config" . "manifests/user1.scm")))
))
(#:inputs . (
((#:name . "guix")
(#:url . "git://git.savannah.gnu.org/guix.git")
(#:load-path . ".")
(#:branch . "master")
(#:no-compile? . #t))
((#:name . "my-guix-packages")
;;(#:url . "file:///home/cuirass/my-guix-packages")
(#:url .
(#:load-path . "packages")
(#:branch . "master")
(#:no-compile? . #t))
((#:name . "config")
;;(#:url .
"file:///home/cuirass/my-guixsd-config.sh")
(#:url .
(#:load-path . ".")
(#:branch . "master")
(#:no-compile? . #t))
))
(#:build-outputs . ()))))

(operating-system
(host-name "MinimalCuirass")
(timezone "Europe/Stockholm")
(bootloader (bootloader-configuration
(bootloader grub-bootloader)))
(file-systems
(cons (file-system
(device (file-system-label "fsroot"))
(mount-point "/")
(type "btrfs"))
%base-file-systems))
(services (append (list
(service openssh-service-type
(openssh-configuration
(port-number 2222)
(permit-root-login 'without-password)
(authorized-keys
`(("root" ,(local-file
"/home/david/.ssh/id_rsa.pub"))))))
;;
(service cuirass-service-type
(cuirass-configuration
(interval 60) ;; 10 hours
(fallback? #f) ;; default is #f
(host "0.0.0.0")
(port 8082)
(use-substitutes? #t)
(specifications %cuirass-specs))))
%base-services)))

-------------------


Best regards,
David Larsson
D
D
david larsson wrote on 1 Jan 2021 18:44
(address . 45599@debbugs.gnu.org)(name . bug-Guix)(address . bug-guix-bounces+someone=selfhosted.xyz@gnu.org)
9aaa05cf94bf2eb6f3ed18b9fd189f37@selfhosted.xyz
Toggle quote (5 lines)
> -----------------------
>
> As you can see, guix is now broken on both the host and guest system.
>

By the way, WARNING: when i say breaking the foreign distro, I mean
breaking not only guix - everytime I tried this I have been unable to
login to the system again after a logout. I have tried this on Debian
GNU/Linux 9 inside a VM which is snapshotted so I can restore it.

Best regards,
David
L
L
Ludovic Courtès wrote on 4 Mar 2021 10:14
(name . david larsson)(address . david.larsson@selfhosted.xyz)(address . 45599@debbugs.gnu.org)
8735xbp9gl.fsf@gnu.org
Hi David,

Looks like this bug report fell through the cracks of the turn of year…

david larsson <david.larsson@selfhosted.xyz> skribis:

Toggle quote (12 lines)
> upon starting it with sudo /gnu/store/asdfasdfasdf-run-container
>
>
> and connecting to it with
>
> sudo guix container exec 8625 /run/current-system/profile/bin/bash
> --login
> [sudo] password for david:
> root@MinimalSSH /#
> root@MinimalSSH /#
> root@MinimalSSH /# guix package -i hello

[...]

Toggle quote (13 lines)
> error: executing
> `/gnu/store/qyjhy4bkz51jyspi63llfznsnz7vibzy-guix-1.1.0-30.875c01f/bin/guix
> substitute': No such file or directory
> guix package: error: unexpected EOF reading a line
> root@MinimalSSH /#
> root@MinimalSSH /# exit
> logout
> guix container: error: exec failed with status 1
> david@l560:~/VirtualHome/src$ guix package -i hello
> bash: /usr/local/bin/guix:
> /gnu/store/b7rixb64yp00znz0d5rwd5zzklwzlzmv-guile-wrapper/bin/guile:
> bad interpreter: No such file or directory

It looks as though the store item for Guix or Guile used on the host had
been suddenly wiped, even though we don’t see any GC activity or
similar.

Toggle quote (2 lines)
> As you can see, guix is now broken on both the host and guest system.

Were you able to better see what was broken? Is it that store items
were removed? Are there issues with non-Guix files? It would be great
if you could gather more details as to what’s wrong. I’ll also see if I
can try that in a VM.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 4 Mar 2021 10:14
control message for bug #45599
(address . control@debbugs.gnu.org)
871rcvp9ga.fsf@gnu.org
severity 45599 important
quit
D
D
david larsson wrote on 5 Mar 2021 14:43
Re: bug#45599: using guix to install packages from inside a container that runs on foreign distro breaks guix and the foreign distro
(name . Ludovic Courtès)(address . ludo@gnu.org)
6b7c63b9fd5d9070bd66049d8c795e32@selfhosted.xyz
On 2021-03-04 10:14, Ludovic Courtès wrote:
Toggle quote (46 lines)
> Hi David,
>
> Looks like this bug report fell through the cracks of the turn of year…
>
> david larsson <david.larsson@selfhosted.xyz> skribis:
>
>> upon starting it with sudo /gnu/store/asdfasdfasdf-run-container
>>
>>
>> and connecting to it with
>>
>> sudo guix container exec 8625 /run/current-system/profile/bin/bash
>> --login
>> [sudo] password for david:
>> root@MinimalSSH /#
>> root@MinimalSSH /#
>> root@MinimalSSH /# guix package -i hello
>
> [...]
>
>> error: executing
>> `/gnu/store/qyjhy4bkz51jyspi63llfznsnz7vibzy-guix-1.1.0-30.875c01f/bin/guix
>> substitute': No such file or directory
>> guix package: error: unexpected EOF reading a line
>> root@MinimalSSH /#
>> root@MinimalSSH /# exit
>> logout
>> guix container: error: exec failed with status 1
>> david@l560:~/VirtualHome/src$ guix package -i hello
>> bash: /usr/local/bin/guix:
>> /gnu/store/b7rixb64yp00znz0d5rwd5zzklwzlzmv-guile-wrapper/bin/guile:
>> bad interpreter: No such file or directory
>
> It looks as though the store item for Guix or Guile used on the host
> had
> been suddenly wiped, even though we don’t see any GC activity or
> similar.
>
>> As you can see, guix is now broken on both the host and guest system.
>
> Were you able to better see what was broken? Is it that store items
> were removed? Are there issues with non-Guix files? It would be great
> if you could gather more details as to what’s wrong. I’ll also see if
> I
> can try that in a VM.

No, unfortunately I couldn't find any reason. I repeated it a few times
with the same results but I no longer have access to the VM I tested
this on so I can't help with more details, sorry :/

If it does not happen when you try it (if you do), I would be glad to
hear about so I can call this a fluke and attribute the bug to special
unknown circumstances with the particular host system I used.


Best regards,
David
?