aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-08-29 14:37:58 +0200
committerLudovic Courtès <ludo@gnu.org>2014-08-29 14:37:58 +0200
commitb1e48f222b4805012b4fd2ef5b4aa46884ee0a8d (patch)
tree5106836a324361e1acd1e47531ec9217787af8f1
parent00b7776c0dc294c26c3b09bff236ccacbedd2080 (diff)
downloadguix-b1e48f222b4805012b4fd2ef5b4aa46884ee0a8d.tar
guix-b1e48f222b4805012b4fd2ef5b4aa46884ee0a8d.tar.gz
offload: Ignore unreachable machines.
Fixes <http://bugs.gnu.org/18070>. Reported by Andreas Enge <andreas@enge.fr>. * guix/scripts/offload.scm (remote-pipe): Augment docstring. (machine-load): Return +inf.0 instead of 1 if MACHINE does not respond or responds badly.
-rw-r--r--guix/scripts/offload.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 18af511ed8..c17de34acc 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -181,7 +181,8 @@ determined."
#:key (error-port (current-error-port)) (quote? #t))
"Run COMMAND (a string list) on MACHINE, assuming an lsh gateway has been
set up. When QUOTE? is true, perform shell-quotation of all the elements of
-COMMAND."
+COMMAND. Return either a pipe opened with MODE, or #f if the lsh client could
+not be started."
(define (shell-quote str)
;; Sort-of shell-quote STR so it can be passed as an argument to the
;; shell.
@@ -535,7 +536,7 @@ allowed on MACHINE."
(line (read-line pipe)))
(close-pipe pipe)
(if (eof-object? line)
- 1.
+ +inf.0 ;MACHINE does not respond, so assume it is infinitely loaded
(match (string-tokenize line)
((one five fifteen . _)
(let* ((raw (string->number five))
@@ -546,7 +547,7 @@ allowed on MACHINE."
(build-machine-name machine) raw normalized)
normalized))
(_
- 1.)))))
+ +inf.0))))) ;something's fishy about MACHINE, so avoid it
(define (machine-less-loaded? m1 m2)
"Return #t if the load on M1 is lower than that on M2."