Subject: bug#28057: assert-node-has-guix should fail gracefully

From: Ricardo Wurmus <[email-masked]>
Date: Fri, 11 Aug 2017 22:59:10 +0200

I have a couple of servers where offloading doesn’t quite work for as
yet unknown reasons.  “guix offload test” crashes instead of telling me
what’s wrong:

--8<---------------cut here---------------start------------->8---
root@berlin ~/maintenance# guix offload test
guix offload: testing 3 build machines defined in '/etc/guix/machines.scm'...
guix offload: '192.168.0.2' is running guile (GNU Guile) 2.2.2
guix offload: '192.168.0.3' is running guile (GNU Guile) 2.2.2
guix offload: '192.168.0.12' is running guile (GNU Guile) 2.2.2
guix offload: Guix is usable on '192.168.0.2' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: Guix is usable on '192.168.0.3' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
Backtrace:
           7 (primitive-load "/gnu/store/gkv8zl774h2qpa89mrf6d74fry3…")
In guix/ui.scm:
  1352:12  6 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    837:9  5 (catch _ _ #<procedure 7f6793a209a8 at guix/ui.scm:450…> …)
    837:9  4 (catch _ _ #<procedure 7f6793a209c0 at guix/ui.scm:538…> …)
In guix/scripts/offload.scm:
    611:6  3 (check-machine-availability _ _)
In srfi/srfi-1.scm:
   656:11  2 (for-each #<procedure assert-node-has-guix (node name)> …)
In guix/scripts/offload.scm:
    543:2  1 (assert-node-has-guix _ "192.168.0.12")
In ssh/dist/node.scm:
    397:8  0 (node-eval #<node [email-masked]:22/37146 e01600> _)

ssh/dist/node.scm:397:8: In procedure node-eval:
ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
--8<---------------cut here---------------end--------------->8---

This error should be caught and the message be printed without the stack
trace.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net