Subject: bug#63902: System containers with --network won't start "In procedure canonicalize-path: No such file or directory"

From: [email-masked]
Date: Mon, 05 Jun 2023 10:23:49 +0200

Dear Guix developers,

To reproduce the bug, take the example container from the documentation:
https://guix.gnu.org/cookbook/en/html_node/A-Database-Container.html

Create a container from the code:
guix system container os.scm

Try to run the container:
sudo /gnu/store/lsa8k983ap58mw8vcpqph89g27skara4-run-container

it works.

Now, just add --network:

guix system container --network os.scm

Run the container
sudo /gnu/store/zqbhfbkc52ifl7j2xhsr9vr1r2a0dpjg-run-container

it fails (both on a Guix System and on a foreign distro (Arch)) with:

system container is running as PID 9090
WARNING: (guile-user): imported module (guix build utils) overrides core binding `delete'
Run 'sudo guix container exec 9090 /run/current-system/profile/bin/bash --login'
or run 'sudo nsenter -a -t 9090' to get a shell into it.

Backtrace:
           7 (primitive-load "/gnu/store/zqbhfbkc52ifl7j2xhsr9vr1r2a?")
In gnu/build/linux-container.scm:
    300:8  6 (call-with-temporary-directory #<procedure 7f0ccbed7d70?>)
   397:16  5 (_ "/tmp/guix-directory.9y6q6s")
     62:6  4 (call-with-clean-exit #<procedure 7f0ccbee3300 at gnu/b?>)
In unknown file:
           3 (primitive-load "/gnu/store/wk96j04sy1rd4sx86n5y7x1a81y?")
In ice-9/eval.scm:
    619:8  2 (_ #f)
   196:35  1 (_ #f)
In unknown file:
           0 (canonicalize-path "/run/current-system")

ERROR: In procedure canonicalize-path:
In procedure canonicalize-path: No such file or directory

I'm available to help with tests.

Cheers,

Edouard.