'guix deploy' not copying remote-gexp.scm with (build-locally? #f)

  • Done
  • quality assurance status badge
Details
4 participants
  • Katherine Cox-Buday
  • Ludovic Courtès
  • Maxim Cournoyer
  • pkill9
Owner
unassigned
Submitted by
pkill9
Severity
important
P
P
pkill9 wrote on 24 Feb 2021 18:59
guix deploy not copying remote-gexp.scm
(address . bug-guix@gnu.org)
20210224175945.48437431@runbox.com
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.
M
M
Maxim Cournoyer wrote on 3 Apr 2021 06:33
control message for bug #46756
(address . control@debbugs.gnu.org)
87lfa0q96n.fsf@gmail.com
severity 46756 important
quit
M
M
Maxim Cournoyer wrote on 3 Apr 2021 06:38
Re: bug#46756: guix deploy not copying remote-gexp.scm
(name . pkill9)(address . pkill9@runbox.com)(address . 46756@debbugs.gnu.org)
87im54q8xm.fsf@gmail.com
Hi!

pkill9 <pkill9@runbox.com> writes:

Toggle quote (12 lines)
> 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:

Toggle snippet (43 lines)
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: ()

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
K
K
Katherine Cox-Buday wrote on 8 Sep 2021 03:52
(address . 46756@debbugs.gnu.org)
87tuivx290.fsf@gmail.com
I am also seeing this behavior. Further, using =guix copy= on the offending
store item doesn't seem to help as it seems like each invocation of
=guix deploy= is generating a new version of this file in the store.

As such, I cannot specify =(build-locally? #f)= in my machine configuration.

--
Katherine
L
L
Ludovic Courtès wrote on 27 Oct 2021 23:50
control message for bug #46756
(address . control@debbugs.gnu.org)
87bl3ab0iy.fsf@gnu.org
retitle 46756 'guix deploy' not copying remote-gexp.scm with (build-locally? #f)
quit
L
L
Ludovic Courtès wrote on 28 Oct 2021 00:51
Re: bug#46756: guix deploy not copying remote-gexp.scm
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87fssm9j53.fsf@gnu.org
Hi!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (48 lines)
> I get this as well. Here's the backtrace:
>
> 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: ()
>
> 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

I believe this is fixed by b19250eec6f92308f237a09a43e8e3e2355345b9,
lemme know!

Following our discussion on IRC, I noticed that derivations would
actually be built locally, and thus their output (‘remote-exp.scm’
above) would not be found.

Why are they getting built locally? Because ‘guix deploy’ installs a
build handler. Thus, when ‘remote-eval’ makes this call:

(build-derivations remote inputs)

the build handler kicks in and starts building locally rather than on
‘remote’. In fact, that’s more of a bug in ‘build-accumulator’ in (guix
store); it should check whether it’s talking to the right store.

Thanks,
Ludo’.
Closed
M
M
Maxim Cournoyer wrote on 28 Oct 2021 03:20
(name . Ludovic Courtès)(address . ludo@gnu.org)
87fssmaqs4.fsf_-_@gmail.com
Hi!

help-debbugs@gnu.org (GNU bug Tracking System) writes:

Toggle quote (19 lines)
> I believe this is fixed by b19250eec6f92308f237a09a43e8e3e2355345b9,
> lemme know!
>
> Following our discussion on IRC, I noticed that derivations would
> actually be built locally, and thus their output (‘remote-exp.scm’
> above) would not be found.
>
> Why are they getting built locally? Because ‘guix deploy’ installs a
> build handler. Thus, when ‘remote-eval’ makes this call:
>
> (build-derivations remote inputs)
>
> the build handler kicks in and starts building locally rather than on
> ‘remote’. In fact, that’s more of a bug in ‘build-accumulator’ in (guix
> store); it should check whether it’s talking to the right store.
>
> Thanks,
> Ludo’.

It works a treat! Thank you! :-)

It'll make keeping my remote machine updated with 'guix deploy' much
smoother.

Thanks again,

Maxim
L
L
Ludovic Courtès wrote on 28 Oct 2021 22:00
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
877ddw538h.fsf@gnu.org
Hi!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (5 lines)
> help-debbugs@gnu.org (GNU bug Tracking System) writes:
>
>> I believe this is fixed by b19250eec6f92308f237a09a43e8e3e2355345b9,
>> lemme know!

[...]

Toggle quote (5 lines)
> It works a treat! Thank you! :-)
>
> It'll make keeping my remote machine updated with 'guix deploy' much
> smoother.

Ah, good! I came up with a better fix in
2015d3f042870860efef10e801b93eacc0742d38. Works for me, but lemme know
if you notice anything fishy.

Ludo’.
M
M
Maxim Cournoyer wrote on 29 Oct 2021 22:23
(name . Ludovic Courtès)(address . ludo@gnu.org)
871r43a8cb.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (20 lines)
> Hi!
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> help-debbugs@gnu.org (GNU bug Tracking System) writes:
>>
>>> I believe this is fixed by b19250eec6f92308f237a09a43e8e3e2355345b9,
>>> lemme know!
>
> [...]
>
>> It works a treat! Thank you! :-)
>>
>> It'll make keeping my remote machine updated with 'guix deploy' much
>> smoother.
>
> Ah, good! I came up with a better fix in
> 2015d3f042870860efef10e801b93eacc0742d38. Works for me, but lemme know
> if you notice anything fishy.

Thanks for following up on this! I tried it again, still working fine
it seems :-). Good to see a test, too.

Cheers,

Maxim
?
Your comment

This issue is archived.

To comment on this conversation send an email to 46756@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 46756
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch