guix copy fails

OpenSubmitted by Ricardo Wurmus.
Details
3 participants
  • Ludovic Courtès
  • Mark H Weaver
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
R
R
Ricardo Wurmus wrote on 17 Dec 2018 19:40
(address . bug-guix@gnu.org)
87imzsuhdf.fsf@elephly.net
I’m trying to copy a system to my weak i686 system on which I couldn’t
build it. Here’s the command I tried along with the backtrace I get:

Toggle snippet (23 lines)
~/dev/gx/branches/master/pre-inst-env guix copy --to=elephly.net:1022 /gnu/store/b10q1d2hks78i6vbjwrf71xxsyc1xb95-system
Backtrace:
8 (apply-smob/1 #<catch-closure 1194140>)
In ice-9/boot-9.scm:
705:2 7 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
619:8 6 (_ #(#(#<directory (guile-user) 1226140>)))
In guix/ui.scm:
1603:12 5 (run-guix-command _ . _)
In ice-9/boot-9.scm:
829:9 4 (catch srfi-34 #<procedure 147d040 at guix/ui.scm:615:2 ()> #<procedure 7f4939f53498 at guix/ui.scm:6…> …)
829:9 3 (catch system-error #<procedure 147d0e0 at guix/scripts/copy.scm:163:2 ()> #<procedure 7f4939f534b0 a…> …)
In guix/scripts/copy.scm:
80:27 2 (send-to-remote-host _ _)
In guix/ssh.scm:
281:18 1 (send-files #<build-daemon 256.99 1803f50> _ _ #:recursive? _ #:log-port _)
In unknown file:
0 (length #<unspecified>)

ERROR: In procedure length:
In procedure length: Wrong type argument in position 1: #<unspecified>

--
Ricardo
L
L
Ludovic Courtès wrote on 17 Dec 2018 23:10
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 33778@debbugs.gnu.org)
8736qv24an.fsf@gnu.org
Hi,

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (22 lines)
> ~/dev/gx/branches/master/pre-inst-env guix copy --to=elephly.net:1022 /gnu/store/b10q1d2hks78i6vbjwrf71xxsyc1xb95-system
> Backtrace:
> 8 (apply-smob/1 #<catch-closure 1194140>)
> In ice-9/boot-9.scm:
> 705:2 7 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
> In ice-9/eval.scm:
> 619:8 6 (_ #(#(#<directory (guile-user) 1226140>)))
> In guix/ui.scm:
> 1603:12 5 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
> 829:9 4 (catch srfi-34 #<procedure 147d040 at guix/ui.scm:615:2 ()> #<procedure 7f4939f53498 at guix/ui.scm:6…> …)
> 829:9 3 (catch system-error #<procedure 147d0e0 at guix/scripts/copy.scm:163:2 ()> #<procedure 7f4939f534b0 a…> …)
> In guix/scripts/copy.scm:
> 80:27 2 (send-to-remote-host _ _)
> In guix/ssh.scm:
> 281:18 1 (send-files #<build-daemon 256.99 1803f50> _ _ #:recursive? _ #:log-port _)
> In unknown file:
> 0 (length #<unspecified>)
>
> ERROR: In procedure length:
> In procedure length: Wrong type argument in position 1: #<unspecified>

The #<unspecified> comes from the ‘node-eval’ code right above line 281
of guix/ssh.scm.

Could it be that the (guix …) modules were not found on the target
machine, or that guix-daemon was not running there?

Thanks,
Ludo’.
M
M
Mark H Weaver wrote on 18 Dec 2018 22:20
(name . Ludovic Courtès)(address . ludo@gnu.org)
87pntyjzva.fsf@netris.org
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (30 lines)
> Ricardo Wurmus <rekado@elephly.net> skribis:
>
>> ~/dev/gx/branches/master/pre-inst-env guix copy --to=elephly.net:1022 /gnu/store/b10q1d2hks78i6vbjwrf71xxsyc1xb95-system
>> Backtrace:
>> 8 (apply-smob/1 #<catch-closure 1194140>)
>> In ice-9/boot-9.scm:
>> 705:2 7 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
>> In ice-9/eval.scm:
>> 619:8 6 (_ #(#(#<directory (guile-user) 1226140>)))
>> In guix/ui.scm:
>> 1603:12 5 (run-guix-command _ . _)
>> In ice-9/boot-9.scm:
>> 829:9 4 (catch srfi-34 #<procedure 147d040 at guix/ui.scm:615:2 ()> #<procedure 7f4939f53498 at guix/ui.scm:6…> …)
>> 829:9 3 (catch system-error #<procedure 147d0e0 at guix/scripts/copy.scm:163:2 ()> #<procedure 7f4939f534b0 a…> …)
>> In guix/scripts/copy.scm:
>> 80:27 2 (send-to-remote-host _ _)
>> In guix/ssh.scm:
>> 281:18 1 (send-files #<build-daemon 256.99 1803f50> _ _ #:recursive? _ #:log-port _)
>> In unknown file:
>> 0 (length #<unspecified>)
>>
>> ERROR: In procedure length:
>> In procedure length: Wrong type argument in position 1: #<unspecified>
>
> The #<unspecified> comes from the ‘node-eval’ code right above line 281
> of guix/ssh.scm.
>
> Could it be that the (guix …) modules were not found on the target
> machine, or that guix-daemon was not running there?

FYI, about 5 days ago I saw the same error occur on Hydra, during a
build offloaded to guix.sjd.se. I reported it as bug #33722.


The relevant build aborted due to the error, but was later retried and
succeeded. It's the only time I've ever seen this error, so I guess
the bug is relatively new.

Mark
R
R
Ricardo Wurmus wrote on 19 Dec 2018 21:17
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 33778@debbugs.gnu.org)
875zvptgoc.fsf@elephly.net
Hi,

Toggle quote (3 lines)
> Could it be that the (guix …) modules were not found on the target
> machine[…]?

That’s it! The /etc/environment file does not contain lines for
GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH. I added them manually,
killed the listening Guile process, and tried again — with success.

I remembered that I added these variables to /etc/environment on all
build nodes for berlin.guix.info via a service like this:

Toggle snippet (9 lines)
(simple-service 'guile-load-path-in-global-env
session-environment-service-type
`(("GUILE_LOAD_PATH"
. "/run/current-system/profile/share/guile/site/2.2")
("GUILE_LOAD_COMPILED_PATH"
. ,(string-append "/run/current-system/profile/lib/guile/2.2/site-ccache:"
"/run/current-system/profile/share/guile/site/2.2"))))

Should this be done by default?

--
Ricardo
?