aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-02-05 23:36:23 +0100
committerLudovic Courtès <ludo@gnu.org>2015-02-05 23:40:55 +0100
commit353e34a626a43f2fc4e278373b90b9e43a45082f (patch)
tree77860aa7bbce3e2b5fb4e68ecb99d825853972c8
parent7d157c652cf90459dcce51c2c98985683e5359c4 (diff)
downloadguix-353e34a626a43f2fc4e278373b90b9e43a45082f.tar
guix-353e34a626a43f2fc4e278373b90b9e43a45082f.tar.gz
offload: Better report failure to create the GC root directory.
Suggested by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/scripts/offload.scm (register-gc-root)[script]: Replace 'false-if-exception' with a finer-grain 'system-error handler. Provide the name of MACHINE in 'leave' error message.
-rw-r--r--guix/scripts/offload.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index e494500d56..e65125741f 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -310,7 +310,14 @@ hook."
;; directory.
(let ((root-directory (string-append %state-directory
"/gcroots/tmp")))
- (false-if-exception (mkdir root-directory))
+ (catch 'system-error
+ (lambda ()
+ (mkdir root-directory))
+ (lambda args
+ (unless (= EEXIST (system-error-errno args))
+ (error "failed to create remote GC root directory"
+ root-directory (system-error-errno args)))))
+
(catch 'system-error
(lambda ()
(symlink ,file
@@ -331,7 +338,7 @@ hook."
;; Better be safe than sorry: if we ignore the error here, then FILE
;; may be GC'd just before we start using it.
(leave (_ "failed to register GC root for '~a' on '~a' (status: ~a)~%")
- file machine status)))))
+ file (build-machine-name machine) status)))))
(define (remove-gc-roots machine)
"Remove from MACHINE the GC roots previously installed with