Subject: bug#78356: Broken system and home containers

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 15 May 2025 15:25:07 +0900

Hi,

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Rutherther <[email-masked]> skribis:
>
>>> ./target/guix/bin/guix home container -L ./home/modules ./home/home-configuration.scm 
>> guix home: warning: failed to load '(ruther home channels-emacs)':
>> no code for module (ruther home channels-emacs)
>> ruther/home/channels-emacs.scm:1:0: warning: module name (channels) does not match file name 'ruther/home/channels-emacs.scm'
>> hint: File `./home/modules/ruther/home/channels-emacs.scm' should probably start with:
>>
>>      (define-module (ruther home channels-emacs))
>>
>> guix home: warning: ambiguous package specification `font-ubuntu'
>> guix home: warning: choosing [email-masked] from ruther/home/fonts.scm:8:2
>> guix home: error: unshare: 268566528: Invalid argument
>
> What’s weird is that this seems to happen even before activation.
>
> I cannot audit the whole thing but apparently something in the config
> tries to connect to the outside:
>
> <x home container -L home/modules home/home-configuration.scm                        
> Updating channel 'guix' from Git repository at 'https://codeberg.org/guix/guix-mirror'...
> guix home: error: failed to load 'home/home-configuration.scm':
> web/client.scm:338:10: In procedure open-socket-for-uri:
> In procedure getaddrinfo: Servname not supported for ai_socktype
>
> Probably use of ‘current-guix’?
>
> Anyway, do you think you could boil it down to a minimal reproducer?

Not sure how minimal that is, but I can trigger this in the readymedia
system test:

--8<---------------cut here---------------start------------->8---
make check-system TESTS=readymedia
--8<---------------cut here---------------end--------------->8---

It may not fail every time (?).  In the VM, in
/var/log/readymedia/minidlna.log, we can read:

--8<---------------cut here---------------start------------->8---
2025-05-15 08:22:27 In gnu/build/linux-container.scm:
...skipping...
2025-05-15 08:22:27    476:16  3 (_ "/tmp/guix-directory.w1REZ6")
2025-05-15 08:22:27      62:6  2 (call-with-clean-exit #<procedure 7fa0ff7c2e80 at gnu/b?>)
2025-05-15 08:22:27    321:20  1 (_)
2025-05-15 08:22:27 In guix/build/syscalls.scm:
2025-05-15 08:22:27   1231:10  0 (_ 268566528)
2025-05-15 08:22:27 
2025-05-15 08:22:27 guix/build/syscalls.scm:1231:10: In procedure unshare: 268566528: Invalid argument
2025-05-15 08:22:28 Backtrace:
2025-05-15 08:22:28            4 (primitive-load "/gnu/store/4h68sswscz96wk47724bfqfrq9n?")
2025-05-15 08:22:28 In ice-9/eval.scm:
2025-05-15 08:22:28    191:35  3 (_ _)
2025-05-15 08:22:28 In gnu/build/linux-container.scm:
2025-05-15 08:22:28     368:8  2 (call-with-temporary-directory #<procedure 7fa0ff7df3f0?>)
2025-05-15 08:22:28     485:7  1 (_ "/tmp/guix-directory.w1REZ6")
2025-05-15 08:22:28 In unknown file:
2025-05-15 08:22:28            0 (waitpid #f #<undefined>)
2025-05-15 08:22:28 
2025-05-15 08:22:28 ERROR: In procedure waitpid:
2025-05-15 08:22:28 Wrong type (expecting exact integer): #f
--8<---------------cut here---------------end--------------->8---

The service uses least-authority-wrapper.

-- 
Thanks,
Maxim