Problem with guix offload: Remote channel closed

  • Done
  • quality assurance status badge
Details
4 participants
  • Ludovic Courtès
  • Maxim Cournoyer
  • Marius Bakke
  • Mikael Djurfeldt
Owner
unassigned
Submitted by
Mikael Djurfeldt
Severity
normal
M
M
Mikael Djurfeldt wrote on 18 Mar 2020 20:58
(address . bug-guix@gnu.org)(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)
CAA2XvwKTtJvmKVkgKQw+ZnkyFxdScNLx6KWx4DQx3eP4rt8UUw@mail.gmail.com
Hi,

I just installed guix on top of Debian Buster using the installation script
at guix.gnu.org. I did this on two machines, hat and wand, with the hope
that I could offload compilation to wand.

This is what I get:

root@hat:~# guix offload test
guile: warning: failed to install locale
hint: Consider installing the `glibc-utf8-locales' or `glibc-locales'
package and
defining `GUIX_LOCPATH', along these lines:

guix package -i glibc-utf8-locales
export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

guix offload: testing 1 build machines defined in
'/etc/guix/machines.scm'...
guix offload: Guix is usable on 'wand.pdc.kth.se' (test returned
"/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: 'wand.pdc.kth.se' is running GNU Guile 3.0.1
sending 1 store item (0 MiB) to 'wand.pdc.kth.se'...
exporting path `/gnu/store/sd0wqvaffi1cbpvf0dq37mab34rmlnav-export-test'
;;; [2020/03/17 12:45:48.671038, 0] write_to_channel_port: [GSSH ERROR]
Remote channel is closed: #<input-output: channel (open) 7f2c1c9831e0>
Backtrace:
1 (primitive-load "/root/.config/guix/current/bin/guix")
In guix/ui.scm:
1833:12 0 (run-guix-command _ . _)

guix/ui.scm:1833:12: In procedure run-guix-command:
Throw to key `guile-ssh-error' with args `("write_to_channel_port" "Remote
channel is closed" #<input-output: channel (open) 7f2c1c9831e0> #f)'.

Any hints about what could be wrong?

Best regards,
Mikael Djurfeldt
Attachment: file
M
M
Mikael Djurfeldt wrote on 18 Mar 2020 21:01
(address . 40125@debbugs.gnu.org)(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)
CAA2XvwKrnhVRNykuXDtMvcqFAU7d0MRvaOF6xzhYCtQxu_5LPw@mail.gmail.com
This is a more up-to-date log where a problem in my environment (both on
local and build host) was fixed:

mdj@hat:~$ guix offload test
guix offload: testing 1 build machines defined in
'/etc/guix/machines.scm'...
guix offload: Guix is usable on 'wand.pdc.kth.se' (test returned
"/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: 'wand.pdc.kth.se' is running GNU Guile 3.0.1
sending 1 store item (0 MiB) to 'wand.pdc.kth.se'...
exporting path `/gnu/store/gl7dps3yx0vrxz16sj7q3w7gs3vdbxj4-export-test'
;;; [2020/03/18 20:53:04.930901, 0] write_to_channel_port: [GSSH ERROR]
Remote channel is closed: #<input-output: channel (open) 7f5ed680e780>
Backtrace:
1 (primitive-load "/home/mdj/.config/guix/current/bin/guix")
In guix/ui.scm:
1833:12 0 (run-guix-command _ . _)

guix/ui.scm:1833:12: In procedure run-guix-command:
Throw to key `guile-ssh-error' with args `("write_to_channel_port" "Remote
channel is closed" #<input-output: channel (open) 7f5ed680e780> #f)'.
Attachment: file
L
L
Ludovic Courtès wrote on 21 Mar 2020 16:50
(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)(address . 40125@debbugs.gnu.org)
87eetl1zce.fsf@gnu.org
Hi Mikael!

Good to see you here. :-)

Mikael Djurfeldt <mikael@djurfeldt.com> skribis:

Toggle quote (19 lines)
> mdj@hat:~$ guix offload test
> guix offload: testing 1 build machines defined in
> '/etc/guix/machines.scm'...
> guix offload: Guix is usable on 'wand.pdc.kth.se' (test returned
> "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
> guix offload: 'wand.pdc.kth.se' is running GNU Guile 3.0.1
> sending 1 store item (0 MiB) to 'wand.pdc.kth.se'...
> exporting path `/gnu/store/gl7dps3yx0vrxz16sj7q3w7gs3vdbxj4-export-test'
> ;;; [2020/03/18 20:53:04.930901, 0] write_to_channel_port: [GSSH ERROR]
> Remote channel is closed: #<input-output: channel (open) 7f5ed680e780>
> Backtrace:
> 1 (primitive-load "/home/mdj/.config/guix/current/bin/guix")
> In guix/ui.scm:
> 1833:12 0 (run-guix-command _ . _)
>
> guix/ui.scm:1833:12: In procedure run-guix-command:
> Throw to key `guile-ssh-error' with args `("write_to_channel_port" "Remote
> channel is closed" #<input-output: channel (open) 7f5ed680e780> #f)'.

Did you generate a signing key on wand.pdc.kth.se? Specifically with:

sudo guix archive --generate-key

(See

Error reporting in guix offload is currently suboptimal as you have
seen. There’s a couple of bug reports open on that topic, so hopefully
we’ll get there soon!

Ludo’.
M
M
Mikael Djurfeldt wrote on 21 Mar 2020 17:05
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAA2XvwJs34HBvSamsXtK7=5LydNkgxEAxJsYAU_qSYnemr-yoA@mail.gmail.com
Hi Ludovic! :-)

I did generate the signing key on wand. (But is this sensitive to what user
I used? O might have done it as root rather than as the ssh user used to
login on wand.)

I will look at the other buh reports. Meanwhile, do you have any hint on
where to look/insert logging code in order to see what is going on?

Best regards,
Mikael

Den lör 21 mars 2020 16:50Ludovic Courtès <ludo@gnu.org> skrev:

Toggle quote (40 lines)
> Hi Mikael!
>
> Good to see you here. :-)
>
> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>
> > mdj@hat:~$ guix offload test
> > guix offload: testing 1 build machines defined in
> > '/etc/guix/machines.scm'...
> > guix offload: Guix is usable on 'wand.pdc.kth.se' (test returned
> > "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
> > guix offload: 'wand.pdc.kth.se' is running GNU Guile 3.0.1
> > sending 1 store item (0 MiB) to 'wand.pdc.kth.se'...
> > exporting path `/gnu/store/gl7dps3yx0vrxz16sj7q3w7gs3vdbxj4-export-test'
> > ;;; [2020/03/18 20:53:04.930901, 0] write_to_channel_port: [GSSH ERROR]
> > Remote channel is closed: #<input-output: channel (open) 7f5ed680e780>
> > Backtrace:
> > 1 (primitive-load "/home/mdj/.config/guix/current/bin/guix")
> > In guix/ui.scm:
> > 1833:12 0 (run-guix-command _ . _)
> >
> > guix/ui.scm:1833:12: In procedure run-guix-command:
> > Throw to key `guile-ssh-error' with args `("write_to_channel_port"
> "Remote
> > channel is closed" #<input-output: channel (open) 7f5ed680e780> #f)'.
>
> Did you generate a signing key on wand.pdc.kth.se? Specifically with:
>
> sudo guix archive --generate-key
>
> (See
> <https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-archive.html
> >.)
>
> Error reporting in guix offload is currently suboptimal as you have
> seen. There’s a couple of bug reports open on that topic, so hopefully
> we’ll get there soon!
>
> Ludo’.
>
Attachment: file
M
M
Mikael Djurfeldt wrote on 21 Mar 2020 21:00
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2Xvw+NQg1ywGCyu1RCLkJs5sPd6gYsrVpp7jC-kjPCrsHL4g@mail.gmail.com
On Sat, Mar 21, 2020 at 5:05 PM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (7 lines)
> Hi Ludovic! :-)
>
> I did generate the signing key on wand. (But is this sensitive to what
> user I used? O might have done it as root rather than as the ssh user used
> to login on wand.)
>

Sorry, I read your email on a cell phone and missed the "sudo" in front of
the command. Yes, I did that.
Attachment: file
L
L
Ludovic Courtès wrote on 21 Mar 2020 23:16
(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)(address . 40125@debbugs.gnu.org)
87pnd5wdyq.fsf@gnu.org
Hi Mikael,

Mikael Djurfeldt <mikael@djurfeldt.com> skribis:

Toggle quote (3 lines)
> I will look at the other buh reports. Meanwhile, do you have any hint on
> where to look/insert logging code in order to see what is going on?

On ‘wand’, can you run something like:

sudo strace -s 500 -p $(pidof sshd) -f -o sshd.log

After that, run ‘guix offload test’ from the other host, and check what
‘sshd.log’ contains. If would in particular look for all the ‘execve’
syscalls as well as what happens right before ‘exit_group’ syscalls.
There are probably error messages lurking there. :-)

You can share excerpts of the log but note that it will contain
sensitive crypto material, so beware.

Thanks in advance,
Ludo’.
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 19:21
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2XvwJYu9rdZPOCTO54a4aLHFt8LngoDxtAVc151AnEcanjEw@mail.gmail.com
I did this.

What is a bit strange is that the error message seemingly randomly alters
between what I already reported above and the following:

mdj@hat:~/prusa$ guix offload test
guix offload: testing 1 build machines defined in
'/etc/guix/machines.scm'...
guix offload: Guix is usable on 'wand.pdc.kth.se' (test returned
"/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: 'wand.pdc.kth.se' is running GNU Guile 3.0.1
sending 1 store item (0 MiB) to 'wand.pdc.kth.se'...
exporting path `/gnu/store/kw12ny565xl5p05ag6ysgshc9mhh4rz2-export-test'
guix offload: error: unknown error while sending files over SSH

This error message is more common. In this case, I couldn't see anything
obviously strange except the following backtrace which contains strange
characters:

31963 write(2, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
56464c2232a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
(\"prompt\") #<procedure 56464c2407e0 \342\200\246> \342\200\246)\nIn
ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
56464c2c4750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
string 56464c2d2bd0>)\nIn unknown file:\n 9 (eval (begin
(use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
(srfi \342\200\246) \342"..., 1150 <unfinished ...>

I have also noticed that the above (the error message) happens inside the
function send-files. It is the last error clause at the end of the function
which reports the error message.

I'd like to be able to, e.g., modify the function send-files to give some
debugging output. How can I easily do that? Should I checkout guix with git
and try to run it in the source tree? Or do you have other suggestions?

Best regards,
Mikael

On Sat, Mar 21, 2020 at 11:16 PM Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (22 lines)
> Hi Mikael,
>
> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>
> > I will look at the other buh reports. Meanwhile, do you have any hint on
> > where to look/insert logging code in order to see what is going on?
>
> On ‘wand’, can you run something like:
>
> sudo strace -s 500 -p $(pidof sshd) -f -o sshd.log
>
> After that, run ‘guix offload test’ from the other host, and check what
> ‘sshd.log’ contains. If would in particular look for all the ‘execve’
> syscalls as well as what happens right before ‘exit_group’ syscalls.
> There are probably error messages lurking there. :-)
>
> You can share excerpts of the log but note that it will contain
> sensitive crypto material, so beware.
>
> Thanks in advance,
> Ludo’.
>
Attachment: file
L
L
Ludovic Courtès wrote on 22 Mar 2020 21:45
(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)(address . 40125@debbugs.gnu.org)
8736a0uni2.fsf@gnu.org
Hello!

Mikael Djurfeldt <mikael@djurfeldt.com> skribis:

Toggle quote (14 lines)
> This error message is more common. In this case, I couldn't see anything
> obviously strange except the following backtrace which contains strange
> characters:
>
> 31963 write(2, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
> 56464c2232a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
> (\"prompt\") #<procedure 56464c2407e0 \342\200\246> \342\200\246)\nIn
> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
> 56464c2c4750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
> string 56464c2d2bd0>)\nIn unknown file:\n 9 (eval (begin
> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
> (srfi \342\200\246) \342"..., 1150 <unfinished ...>

We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
similar so that it doesn’t truncate it?

(The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)

Toggle quote (8 lines)
> I have also noticed that the above (the error message) happens inside the
> function send-files. It is the last error clause at the end of the function
> which reports the error message.
>
> I'd like to be able to, e.g., modify the function send-files to give some
> debugging output. How can I easily do that? Should I checkout guix with git
> and try to run it in the source tree? Or do you have other suggestions?

Note that the problems happens on the remote machine, which is what
makes it harder to debug.

If you want to debug (guix ssh), you’ll then have to run the daemon from
your Git checkout to exercise that code:

sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild

HTH!

Ludo’.
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 22:40
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAA2XvwJ9Td30sqWYWLhB9h9iM_T9GTK2KjNoJYHGWNeR4skpDQ@mail.gmail.com
On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (8 lines)
> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>
> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
> similar so that it doesn’t truncate it?
>
> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>

Ah... :)

Here's a larger chunk of backtrace:

19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
(\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
(use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
(srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
\342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
(parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
\342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
(process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
(resolve-interface (guix) #:select _ #:hide _ #:prefix _
\342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
resolve-interface:\nno code for module (guix)\n", 16384) = 1150
Attachment: file
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 22:56
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2XvwJ3rcW1hzR8-GTQ+oJfj_ixE0L3LXGRx4VqNES0Pws81w@mail.gmail.com
On Sun, Mar 22, 2020 at 10:40 PM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (36 lines)
> On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:
>
>> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>>
>> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
>> similar so that it doesn’t truncate it?
>>
>> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>>
>
> Ah... :)
>
> Here's a larger chunk of backtrace:
>
> 19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
> 563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
> (\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
> 563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
> string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
> (srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
> 1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
> \342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
> placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
> (parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
> \342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
> c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
> (process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
> ((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
> (resolve-interface (guix) #:select _ #:hide _ #:prefix _
> \342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
> resolve-interface:\nno code for module (guix)\n", 16384) = 1150
>

I think I understand part of the problem. It's not guix guile which is
invoked on wand but the guile which I have installed under /usr/local. But
why is this? guix as well as guile-ssh is installed at wand.
Attachment: file
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 23:13
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2XvwLoL33t=GkfY05+5qYkm6JRA-ojYU5OCHdqCUuiPSpC6g@mail.gmail.com
On Sun, Mar 22, 2020 at 10:56 PM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (44 lines)
> On Sun, Mar 22, 2020 at 10:40 PM Mikael Djurfeldt <mikael@djurfeldt.com>
> wrote:
>
>> On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:
>>
>>> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>>>
>>> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
>>> similar so that it doesn’t truncate it?
>>>
>>> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>>>
>>
>> Ah... :)
>>
>> Here's a larger chunk of backtrace:
>>
>> 19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
>> 563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
>> (\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
>> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
>> 563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
>> string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
>> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
>> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
>> (srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
>> 1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
>> \342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
>> placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
>> (parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
>> \342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
>> c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
>> (process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
>> ((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
>> (resolve-interface (guix) #:select _ #:hide _ #:prefix _
>> \342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
>> resolve-interface:\nno code for module (guix)\n", 16384) = 1150
>>
>
> I think I understand part of the problem. It's not guix guile which is
> invoked on wand but the guile which I have installed under /usr/local. But
> why is this? guix as well as guile-ssh is installed at wand.
>

Which guile is it supposed to use? Which version and which "fusion of
modules"? And how are these supposed to be found on the build machine.
Looking in the strace, it seems like a bash shell with "guile -c" is
started without any path information.

(Not sure that I even ask the right questions.)
Attachment: file
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 23:14
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2XvwJ5zEH4cFPkbv5yc8N+m2D4Y84xH7CHEki1sWmLmAc7Lg@mail.gmail.com
On Sun, Mar 22, 2020 at 11:13 PM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (55 lines)
> On Sun, Mar 22, 2020 at 10:56 PM Mikael Djurfeldt <mikael@djurfeldt.com>
> wrote:
>
>> On Sun, Mar 22, 2020 at 10:40 PM Mikael Djurfeldt <mikael@djurfeldt.com>
>> wrote:
>>
>>> On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:
>>>
>>>> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>>>>
>>>> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
>>>> similar so that it doesn’t truncate it?
>>>>
>>>> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>>>>
>>>
>>> Ah... :)
>>>
>>> Here's a larger chunk of backtrace:
>>>
>>> 19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
>>> 563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
>>> (\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
>>> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
>>> 563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
>>> string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
>>> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
>>> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
>>> (srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
>>> 1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
>>> \342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
>>> placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
>>> (parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
>>> \342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
>>> c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
>>> (process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
>>> ((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
>>> (resolve-interface (guix) #:select _ #:hide _ #:prefix _
>>> \342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
>>> resolve-interface:\nno code for module (guix)\n", 16384) = 1150
>>>
>>
>> I think I understand part of the problem. It's not guix guile which is
>> invoked on wand but the guile which I have installed under /usr/local. But
>> why is this? guix as well as guile-ssh is installed at wand.
>>
>
> Which guile is it supposed to use? Which version and which "fusion of
> modules"? And how are these supposed to be found on the build machine.
> Looking in the strace, it seems like a bash shell with "guile -c" is
> started without any path information.
>
> (Not sure that I even ask the right questions.)
>

The PATH of the build machine user is:

/home/guix/.guix-profile/bin:/home/guix/.config/guix/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/thinlinc/bin
Attachment: file
M
M
Mikael Djurfeldt wrote on 22 Mar 2020 23:24
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40125@debbugs.gnu.org)
CAA2XvwLTRWTRPV=c+HaQTaW-0_OEQnCk36wHY-=EEN_w_dMxWw@mail.gmail.com
On Sun, Mar 22, 2020 at 11:14 PM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (6 lines)
> The PATH of the build machine user is:
>
> /home/guix/.guix-profile/bin:/home/guix/.config/guix/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/thinlinc/bin
>
>

The build host is not a pure guix installation but also has guix on top of
Debian Buster. It seems like the file transfer command is using an ssh call
which doesn't setup the proper guix environment (as, e.g., the
/usr/local/bin/guix script does). For example, PATH will have
/usr/local/bin before the guix environment such that the wrong guile is
selected.

Not sure how the proper setup should look like on the build host side...
Attachment: file
M
M
Marius Bakke wrote on 22 Mar 2020 23:30
(address . 40125@debbugs.gnu.org)
87d0943tuy.fsf@devup.no
Mikael Djurfeldt <mikael@djurfeldt.com> writes:

Toggle quote (4 lines)
> The PATH of the build machine user is:
>
> /home/guix/.guix-profile/bin:/home/guix/.config/guix/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/thinlinc/bin

Do you get the same result if you run:

ssh wand 'echo $PATH'

?

It might be .bashrc is configured not to source the relevant scripts
when being invoked non-interactively, and/or through an SSH session.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl535xUACgkQoqBt8qM6
VPqfLQf/RMDIgSSsjITty+Q7DYmN5XSrvvs9c2pQA1WOOOfdmklMkwO/zzkf6Te5
YeF3MxtbySfEWnHP/n0JyyKoJszh/4+VkEyoTkh6+lcXblAap7W2JyNXsYqwdemh
5RSss9cy2/OZnUp/ns2ryptfb1bQLJ0Jq1mrWUx5SpCSpHst8CfwlPozTSSZm+Vi
Hl+y7Lu4u5Xw6n4mDkzvO2dIo5iCCqjf8BA1C9YjunseHSsi87synHb4K+gIk/AX
GwPqqiB9lfi08EC12/Q5/cn/neJRvBdXuVmWHBzmsgUZ7EsYVZBNQkkUG/bim3dY
VS7O7NNZjMv0JCeTrOcHv/VkHKR2jA==
=/Bxk
-----END PGP SIGNATURE-----

M
M
Mikael Djurfeldt wrote on 22 Mar 2020 23:44
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAA2XvwJOxGDnE3uTNf0Co_=re61Pom3m=5mjqFNFpYte+i=JRA@mail.gmail.com
On Sun, Mar 22, 2020 at 11:30 PM Marius Bakke <mbakke@fastmail.com> wrote:

Toggle quote (17 lines)
> Mikael Djurfeldt <mikael@djurfeldt.com> writes:
>
> > The PATH of the build machine user is:
> >
> >
> /home/guix/.guix-profile/bin:/home/guix/.config/guix/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/thinlinc/bin
>
> Do you get the same result if you run:
>
> ssh wand 'echo $PATH'
>
> ?
>
> It might be .bashrc is configured not to source the relevant scripts
> when being invoked non-interactively, and/or through an SSH session.
>

You're right. It doesn't source the scripts. The PATH only becomes
/usr/local/bin:/usr/bin:/bin:/usr/games in this case.
Attachment: file
M
M
Marius Bakke wrote on 22 Mar 2020 23:58
(address . mikael@djurfeldt.com)
87a7483sk0.fsf@devup.no
Mikael Djurfeldt <mikael@djurfeldt.com> writes:

Toggle quote (7 lines)
>> It might be .bashrc is configured not to source the relevant scripts
>> when being invoked non-interactively, and/or through an SSH session.
>>
>
> You're right. It doesn't source the scripts. The PATH only becomes
> /usr/local/bin:/usr/bin:/bin:/usr/games in this case.

On Guix System, the default .bashrc does this:

if [[ $- != *i* ]]
then
# We are being invoked from a non-interactive shell. If this
# is an SSH session (as in "ssh host command"), source
# /etc/profile so we get PATH and other essential variables.
[[ -n "$SSH_CLIENT" ]] && source /etc/profile

# Don't do anything else.
return
fi

IIRC Debian does something similar to detect if being invoked
non-interactively, but then just returns instead of sourcing anything.

Adding a line that sources ~/.guix-profile/etc/profile before the check
for an interactive shell might be enough in that case.

HTH,
Marius
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl537a8ACgkQoqBt8qM6
VPqDBAgAwpbTilYRyr7T54ErSvY1dMZyHojixTYvVT6JMWL67X0sJFkCxtH3YLW4
RDzmw6AzsFnsGypwNrz/QQ7a4ztyJTXzGs8N1Ay2+saNBqTbBLpUZIeQ6uYm/a02
efUCUnjZJorgep1ccvC6ipoZvyQjWejA4UFiGPXXPKtSUgvqPBoXqITYxDcre+oy
0w3Vw4BK6Fm3ogN1BNfkbUy/DhRDmQmxueTAytRHdEmTTBRRfPBeSndYM7dWo/Sk
/qkHELtHdeR6Yk223IkYn97dWCmD9FH8nkC2obSZMEhpRCSQCDtodBgzEOW+lPbA
otkoP2A7Xk+slfh2MhYTEqXNVwmykg==
=qt7Z
-----END PGP SIGNATURE-----

M
M
Mikael Djurfeldt wrote on 23 Mar 2020 00:12
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAA2XvwJNTqC3-oHUqxDU=6kWm1F-fuywXq6WC=mNf5_Z5vztMQ@mail.gmail.com
On Sun, Mar 22, 2020 at 11:59 PM Marius Bakke <mbakke@fastmail.com> wrote:

Toggle quote (29 lines)
> Mikael Djurfeldt <mikael@djurfeldt.com> writes:
>
> >> It might be .bashrc is configured not to source the relevant scripts
> >> when being invoked non-interactively, and/or through an SSH session.
> >>
> >
> > You're right. It doesn't source the scripts. The PATH only becomes
> > /usr/local/bin:/usr/bin:/bin:/usr/games in this case.
>
> On Guix System, the default .bashrc does this:
>
> if [[ $- != *i* ]]
> then
> # We are being invoked from a non-interactive shell. If this
> # is an SSH session (as in "ssh host command"), source
> # /etc/profile so we get PATH and other essential variables.
> [[ -n "$SSH_CLIENT" ]] && source /etc/profile
>
> # Don't do anything else.
> return
> fi
>
> IIRC Debian does something similar to detect if being invoked
> non-interactively, but then just returns instead of sourcing anything.
>
> Adding a line that sources ~/.guix-profile/etc/profile before the check
> for an interactive shell might be enough in that case.
>

I examined this a bit. You're right about .bashrc. But sourcing that
profile is not sufficient.

Just as a test, I enabled user specified environments in sshd_config (such
that ssh reads .ssh/environment) and added the following there:

PATH=/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/bin:/home/guix/.guix-profile/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
GUILE_LOAD_COMPILED_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/lib/guile/3.0/site-ccache:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/lib/guile/3.0/ccache
GUILE_LOAD_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/share/guile/site/3.0:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/share/guile/3.0
GUIX_PROFILE=/home/guix/.guix-profile
GUIX_LOCPATH=/home/guix/.guix-profile/lib/locale

This made the offload test work.

Crucial here is the PATH to guile 3.0.1 as well as the GUILE_LOAD_* paths.

But how are these *supposed* to be setup on the build host???
Attachment: file
M
M
Mikael Djurfeldt wrote on 23 Mar 2020 00:28
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAA2XvwLD+0bnKAVHFVAhvQYAU+e8mnHgNEvdq-v7H9=y35o+4Q@mail.gmail.com
On Mon, Mar 23, 2020 at 12:12 AM Mikael Djurfeldt <mikael@djurfeldt.com>
wrote:

Toggle quote (20 lines)
>
> Just as a test, I enabled user specified environments in sshd_config (such
> that ssh reads .ssh/environment) and added the following there:
>
>
> PATH=/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/bin:/home/guix/.guix-profile/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
>
> GUILE_LOAD_COMPILED_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/lib/guile/3.0/site-ccache:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/lib/guile/3.0/ccache
>
> GUILE_LOAD_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/share/guile/site/3.0:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/share/guile/3.0
> GUIX_PROFILE=/home/guix/.guix-profile
> GUIX_LOCPATH=/home/guix/.guix-profile/lib/locale
>
> This made the offload test work.
>
> Crucial here is the PATH to guile 3.0.1 as well as the GUILE_LOAD_* paths.
>
> But how are these *supposed* to be setup on the build host???
>

Just to be clear:

You're right that this can be done without .ssh/environment and just using
a modified .bashrc.

But how am I supposed to retrieve all those PATHS in a way that doesn't
have to be modified as I update guix?
Attachment: file
M
M
Marius Bakke wrote on 23 Mar 2020 00:40
(address . mikael@djurfeldt.com)
874kug3qm2.fsf@devup.no
Mikael Djurfeldt <mikael@djurfeldt.com> writes:

Toggle quote (15 lines)
> Just as a test, I enabled user specified environments in sshd_config (such
> that ssh reads .ssh/environment) and added the following there:
>
> PATH=/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/bin:/home/guix/.guix-profile/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
> GUILE_LOAD_COMPILED_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/lib/guile/3.0/site-ccache:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/lib/guile/3.0/ccache
> GUILE_LOAD_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/share/guile/site/3.0:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/share/guile/3.0
> GUIX_PROFILE=/home/guix/.guix-profile
> GUIX_LOCPATH=/home/guix/.guix-profile/lib/locale
>
> This made the offload test work.
>
> Crucial here is the PATH to guile 3.0.1 as well as the GUILE_LOAD_* paths.
>
> But how are these *supposed* to be setup on the build host???

Installing 'guile' and 'guix' (or their Guile 3.0 equivalents) into the
user profile is the simplest solution. Then you can just source
~/.guix-profile/etc/profile early in .bashrc, because it will contain
all the relevant variables.

Otherwise manipulating PATH and GUILE_LOAD_PATH directly seems like a
fine solution to me, but you should refer to
~/.config/guix/current/share/guile and friends instead of
/gnu/store/...guix-module-union/share/guile because the latter is prone
to being garbage collected.

Does that make sense? It might be useful to create a dedicated user
account for this to avoid clobbering your regular dotfiles/profiles.

I don't think there is an established practice here, so your feedback on
this is very valuable! Offloading to a Guix System will just work, of
course.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl5394UACgkQoqBt8qM6
VPouHAf9G/2RWj2jsX+tTCZbX1gIB7TsgVsYqWS/jKWLYJYp3czTLv3ElxoiX4kj
J6Yjynk8ebU5YqrDLCSGkhzUGQS+WIPrlhs2JYPySzo9Snrujergx/cmYITB/dKO
YgNdMF005lMbsBYBl0TFGQqfi+KkQtvAcCKgCFTOWu89+fWTA6+f8mfOwsuKWukC
JCN4itFeGEbLRucwrR9frtE17Mcd6uGBnpzEqGfJuZQul0MlxOMkO4xuSTMge/OI
BMYYpvNLfOH5vXWbt/QTPo5A7bLkFWdLsaYF4wjF6sbPfBdkPzOd875VdkJlCaUu
SKbzVzze3foFu17PZcXzje6ZQFvtvA==
=L/kB
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 23 Mar 2020 10:50
(name . Mikael Djurfeldt)(address . mikael@djurfeldt.com)(address . 40125@debbugs.gnu.org)
87o8snqu2c.fsf@gnu.org
Hi Mikael,

Mikael Djurfeldt <mikael@djurfeldt.com> skribis:

Toggle quote (35 lines)
> On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:
>
>> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>>
>> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
>> similar so that it doesn’t truncate it?
>>
>> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>>
>
> Ah... :)
>
> Here's a larger chunk of backtrace:
>
> 19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
> 563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
> (\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
> 563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
> string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
> (srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
> 1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
> \342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
> placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
> (parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
> \342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
> c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
> (process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
> ((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
> (resolve-interface (guix) #:select _ #:hide _ #:prefix _
> \342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
> resolve-interface:\nno code for module (guix)\n", 16384) = 1150

Thanks! Commit 8f53d73493a2949e2db28cd7d689a690b2d9479a improves error
reporting in this case.

This can be tested by running “guix copy --to=HOST coreutils” for a host
where Guix modules are missing.

Thanks,
Ludo’.
M
M
Maxim Cournoyer wrote on 2 Aug 2023 17:09
(name . Ludovic Courtès)(address . ludo@gnu.org)
871qglscp2.fsf@gmail.com
Hello,

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (45 lines)
> Hi Mikael,
>
> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>
>> On Sun, Mar 22, 2020 at 9:46 PM Ludovic Courtès <ludo@gnu.org> wrote:
>>
>>> Mikael Djurfeldt <mikael@djurfeldt.com> skribis:
>>>
>>> We’re missing a tiny bit. :-) Could you run strace with ‘-s 3000’ or
>>> similar so that it doesn’t truncate it?
>>>
>>> (The “strange characters” are Unicode HORIZONTAL ELLIPSIS.)
>>>
>>
>> Ah... :)
>>
>> Here's a larger chunk of backtrace:
>>
>> 19530 read(20, "Backtrace:\n 13 (apply-smob/1 #<catch-closure
>> 563a9e2f92a0>)\nIn ice-9/boot-9.scm:\n 718:2 12 (call-with-prompt
>> (\"prompt\") #<procedure 563a9e3167e0 \342\200\246> \342\200\246)\nIn
>> ice-9/eval.scm:\n 619:8 11 (_ #(#(#<directory (guile-user)
>> 563a9e39a750>)))\nIn ice-9/command-line.scm:\n 181:18 10 (_ #<input:
>> string 563a9e3a8bd0>)\nIn unknown file:\n 9 (eval (begin
>> (use-modules (guix) (srfi srfi-34) # #) \342\200\246) #)\nIn
>> ice-9/eval.scm:\n 721:20 8 (primitive-eval (begin (use-modules (guix)
>> (srfi \342\200\246) \342\200\246) \342\200\246))\nIn ice-9/psyntax.scm:\n
>> 1241:36 7 (expand-top-sequence ((begin (use-modules (guix) \342\200\246)
>> \342\200\246)) \342\200\246)\n 1194:19 6 (parse _ ((\"placeholder\"
>> placeholder)) ((top) #(# # \342\200\246)) \342\200\246)\n 1233:19 5
>> (parse _ ((\"placeholder\" placeholder)) ((top) #(# # \342\200\246))
>> \342\200\246)\n 285:10 4 (parse _ ((\"placeholder\" placeholder)) (()) _
>> c&e (eval) \342\200\246)\nIn ice-9/boot-9.scm:\n 3389:20 3
>> (process-use-modules _)\n 222:17 2 (map1 (((guix)) ((srfi srfi-34))
>> ((rnrs io ports)) (#)))\n 3390:31 1 (_ ((guix)))\n 2809:6 0
>> (resolve-interface (guix) #:select _ #:hide _ #:prefix _
>> \342\200\246)\n\nice-9/boot-9.scm:2809:6: In procedure
>> resolve-interface:\nno code for module (guix)\n", 16384) = 1150
>
> Thanks! Commit 8f53d73493a2949e2db28cd7d689a690b2d9479a improves error
> reporting in this case.
>
> This can be tested by running “guix copy --to=HOST coreutils” for a host
> where Guix modules are missing.

Great, closing!

--
Thanks,
Maxim
Closed
?