summary refs log tree commit diff
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.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."