Subject: bug#34015: guix copy error message is quite difficult to understand

From: Ludovic Courtès <[email-masked]>
Date: Wed, 09 Jan 2019 22:22:30 +0100

Hello Clément,

Clément Lassieur <[email-masked]> skribis:

> This is what happens when /etc/profile isn't sourced in the remote
> non-interactive shell on guix copy.

Do you know specifically which environment variable was missing and what
caused the backtrace?

Also, what commit are you using?  I’m asking because commit
ed7b44370f71126087eb953f36aad8dc4c44109f changed the way we talk to a
remote Guix over SSH.

> I find it difficult to understand.  I think the error message should
> lead us to a way to fix the issue.
>
> sending 1 store item (0 MiB) to '192.168.0.51'...
> ;;; [2019/01/08 16:48:31.587577, 0] write_to_channel_port: [GSSH ERROR] Remote channel is closed: #<input-output: channel (open) 16bba60>
> Backtrace:
>           10 (primitive-load "/home/clement/.config/guix/current/bin…")
> In guix/ui.scm:
>   1644:12  9 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>     829:9  8 (catch srfi-34 #<procedure 169c020 at guix/ui.scm:622:…> …)
>     829:9  7 (catch system-error #<procedure 169c0c0 at guix/script…> …)
> In guix/scripts/copy.scm:
>     80:27  6 (send-to-remote-host _ _)
> In guix/ssh.scm:
>     313:4  5 (send-files #<build-daemon 256.99 1694f00> _ _ # _ # _)
> In guix/store.scm:
>   1466:12  4 (export-paths #<build-daemon 256.99 1694f00> _ #<input…> …)
>   1446:22  3 (export-path #<build-daemon 256.99 1694f00> _ #<input-…> …)
>    644:13  2 (process-stderr _ _)
>    607:10  1 (dump-port #<input-output: socket 14> #<input-output: …> …)
> In unknown file:
>            0 (put-bytevector #<input-output: channel (open) 16bba60> …)
>
> ERROR: In procedure put-bytevector:
> Throw to key `guile-ssh-error' with args `("write_to_channel_port" "Remote channel is closed" #<input-output: channel (open) 16bba60> #f)'.

I agree the message could be… ahem… clearer.  :-)

Thanks,
Ludo’.