Subject: bug#78356: Broken system and home containers

From: hiecaq <[email-masked]>
Date: Sun, 18 May 2025 10:08:17 +0800

Hi,

Rutherther via Bug reports for GNU Guix <[email-masked]> writes:

> Hi Ludo
>
> Ludovic Courtès <[email-masked]> writes:
>>
>> What command did you run, precisely?  I cannot experience it:
>
> For home, I tried my own config, and since I was pretty sure any 
> system
> container is affected (tried a simple one, my one and I know one 
> other
> person reported this in Matrix channel), I didn't try anything 
> simpler
> and just assumed all homes are going to be affected as well.
> Now trying simpler config you mentioned, that one works fine.
>
> The command was `guix home container -L ./home/modules 
> ./home/home-container.scm`
> in my repository. It's here 
> https://git.ditigal.xyz/~ruther/guix-config.
> Any idea what service could cause this behavior with 
> lock-mounts? Would
> be good to isolate it, but I am not sure where to start.
>
> Here is the unshare error I was talking about earlier:
>> guix home: error: unshare: 268566528: Invalid argument
> Now I am getting it consistently, before it was missing 
> sometimes.
> Currently on
> ```
>> ./target/guix/bin/guix describe
>   guix 300d29e
>     repository URL: https://codeberg.org/guix/guix-mirror
>     branch: master
>     commit: 300d29e69988caf23684f08effa51f621c7ec083
>   nonguix 1940698
>     repository URL: https://gitlab.com/nonguix/nonguix
>     branch: master
>     commit: 19406981a9bf9d0b140180f1f3008cb91f716b4b
>   ruther 1a49e47
>     repository URL: https://git.ditigal.xyz/~ruther/guix-exprs
>     branch: main
>     commit: 1a49e4760bd922237532fa2eee44bc9e1fe42399
>   rde bf8f628
>     repository URL: https://git.sr.ht/~abcdw/rde
>     branch: master
>     commit: bf8f628c4deb9acc94e261db80d301048ea1f0a2
> ```
>
> Thanks
> Rutherther

I'm getting this "unshare: 268566528: Invalid argument" error just 
using `guix shell -C -m manifest.scm` when I was trying to develop 
a local Haskell package today, and I think it might be relevant to 
this bug.  Here is the backtrace:

--8<---------------cut here---------------start------------->8---
guix shell: error: unshare: 268566528: Invalid argument
Backtrace:
          16 (primitive-load 
          "/home/hiecaq/.config/guix/current/bin/…")
In guix/ui.scm:
   2369:7 15 (run-guix . _)
  2332:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
In guix/status.scm:
    839:4 12 (call-with-status-report _ _)
In guix/store.scm:
    703:3 11 (_)
In ice-9/boot-9.scm:
  1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   690:37  9 (thunk)
   1331:8  8 (call-with-build-handler _ _)
   1331:8  7 (call-with-build-handler #<procedure 7f364c36aea0 at 
   g…> …)
In guix/scripts/environment.scm:
  1184:11  6 (proc _)
In guix/store.scm:
  2212:25  5 (run-with-store #<store-connection 256.100 
  7f364cd41050> …)
In guix/scripts/environment.scm:
    898:8  4 (_ _)
In gnu/build/linux-container.scm:
    485:7  3 (call-with-container _ _ #:namespaces _ #:host-uids _ 
    # …)
In unknown file:
           2 (waitpid #f #<undefined>)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong type (expecting exact integer): #f
--8<---------------cut here---------------end--------------->8---

Here is my manifest:

--8<---------------cut here---------------start------------->8---
(use-modules (guix)
             (guix build-system haskell)
             (guix git-download)
             ((guix licenses) #:prefix license:)
             (gnu packages)
             (gnu packages xorg) ;; for libxpm
             (gnu packages wm) ;; for ghc-xmobar
             (gnu packages haskell)
             (gnu packages haskell-apps))

(specifications->manifest
 (list "ghc-xmobar" "ghc" "gcc-toolchain" "libxpm"))

(define %source-dir (dirname (current-filename)))

(define xmobar-hiecaq
  (package
    (name "xmobar-hiecaq")
    (version "0.0.1")
    (source
     (local-file %source-dir
                 #:recursive? #t
                 #:select? (git-predicate %source-dir)))
    (build-system haskell-build-system)
    (inputs (list ghc-xmobar
                  libxpm))
    (home-page "")
    (synopsis
     "")
    (description
     "")
    (license license:gpl3+)))

(concatenate-manifests
 (list
  (specifications->manifest
   (list "coreutils" "git" "which"))
  (packages->manifest (list cabal-install))
  (package->development-manifest xmobar-hiecaq)))
--8<---------------cut here---------------end--------------->8---

What I did is basically the following things in order (I believe 
only the manifest is needed to reproduce):
1. `guix shell -C -m manifest.scm`
2. then I attempted `cabal build` but I realized that now I need 
writable root.  So
3. I quit the current shell and then `guix shell -C -m 
manifest.scm --writable-root`, it failed with the above error.
4. After that, `guix shell -C -m manifest.scm` also failed, but if 
I kept retrying sometimes it succeeded.  With `--writable-root` it 
failed consistently.

Output of `guix describe`:

--8<---------------cut here---------------start------------->8---
Generation 26   May 17 2025 09:41:21    (current)
  nonguix e4459f4
    repository URL: https://gitlab.com/nonguix/nonguix
    branch: master
    commit: e4459f4802e8b222eec55196d44c25dc7a5bc53b
  guix 6465931
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 6465931bbc118d4ed9da652b0be74ed844b52b2a
--8<---------------cut here---------------end--------------->8---

I had been using Guix at the commit 
`d505cb960fd1e670be9a66d9fdbad94bc49e891d` before yesterday (so 
`--writable-root` were not introduced yet) and I had never got any 
similar error before.  I hope my case is reproducible ;)

Thanks,
hiecaq