Subject: bug#46756: guix deploy not copying remote-gexp.scm

From: Maxim Cournoyer <[email-masked]>
Date: Sat, 03 Apr 2021 00:38:29 -0400

Hi!

pkill9 <[email-masked]> writes:

> I keep getting this error:
>
> ```
> (system-error "open-file" "~A: ~S" ("No such file or directory"
> "/gnu/store/p3ahdfcwa5yd65l5nzsnzshw9s7x3xc7-remote-exp.scm") (2))
> ```
>
> when I try to run `guix deploy`. This is on the remote machine. I can
> get it to work by using `guix copy` to copy that file from my local
> machine to the remote, but i don't know why it isn't copying it over
> automatically.

I get this as well.  Here's the backtrace:

--8<---------------cut here---------------start------------->8---
 In ice-9/boot-9.scm:
   1731:15 19 (with-exception-handler #<procedure 7fb17c1e8870 at ice-9/boot-9.scm:1815:7 (exn)> _ # _ # …)
 In guix/status.scm:
     793:4 18 (call-with-status-report _ _)
 In ice-9/boot-9.scm:
   1736:10 17 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
 In guix/store.scm:
    636:37 16 (thunk)
    1305:8 15 (call-with-build-handler _ _)
    1305:8 14 (call-with-build-handler _ _)
    1305:8 13 (call-with-build-handler _ _)
    1305:8 12 (call-with-build-handler #<procedure 7fb17922a3f0 at guix/ui.scm:1171:2 (continue store …> …)
 In guix/scripts/deploy.scm:
    170:14 11 (_)
 In guix/store.scm:
    1346:2 10 (map/accumulate-builds #<store-connection 256.99 7fb179220870> _ _)
 In srfi/srfi-1.scm:
    586:17  9 (map1 (#<<unresolved> things: (("/gnu/store/7hj8kbsqkm3qcpd8dyayx1c53r59ma2v-guile-3.0.2…>))
 In guix/store.scm:
    1305:8  8 (call-with-build-handler #<procedure build-accumulator (continue store things mode)> _)
 In ice-9/boot-9.scm:
   1736:10  7 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
 In guix/scripts/deploy.scm:
     144:6  6 (_)
 In guix/store.scm:
   2066:24  5 (run-with-store #<store-connection 256.99 7fb179220870> _ #:guile-for-build _ #:system _ # …)
 In gnu/machine/ssh.scm:
     450:6  4 (_ _)
 In guix/remote.scm:
     86:17  3 (_ _)
 In ice-9/boot-9.scm:
   1669:16  2 (raise-exception _ #:continuable? _)
   1669:16  1 (raise-exception _ #:continuable? _)
   1669:16  0 (raise-exception _ #:continuable? _)

 ice-9/boot-9.scm:1669:16: In procedure raise-exception:
 ERROR:
   1. &inferior-exception:
       arguments: (system-error "open-file" "~A: ~S" ("No such file or directory" "/gnu/store/4q0sl8b1wg6nwiiz6xzhy8iskmyc43gv-remote-exp.scm") (2))
       inferior: #f
       stack: ()
--8<---------------cut here---------------end--------------->8---

As a workaround, one can build the machine's profile locally (the
default, so by removing (build-locally? #f) or setting the value to #t
in the machines' machine-ssh-configuration).  That's not satisfying
though, as for example for my offload machine I must transfer a system
closure of near 4 GiB instead of simply allowing it to be built
remotely.

I'm marking this as serious, as it is a severe regression of the 'guix
deploy' facility that prevents its use to scale.

Maxim