'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
?