From f71901a96c6b971f2b92ad8e68447fe143ac552c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 24 Oct 2020 15:46:47 +0100 Subject: Use valid-path? rather than file exists for testing store items As the file might exist, but ignored because the daemon is treating it as invalid. --- guix-build-coordinator/agent.scm | 6 ++++-- guix-build-coordinator/client-communication.scm | 4 +++- guix-build-coordinator/utils.scm | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm index 4951ba6..fa76999 100644 --- a/guix-build-coordinator/agent.scm +++ b/guix-build-coordinator/agent.scm @@ -186,7 +186,9 @@ #:delay 60) ;; Double check everything is actually present. - (let ((missing-files (remove file-exists? output-paths))) + (let ((missing-files (remove (lambda (path) + (valid-path? store path)) + output-paths))) (if (null? missing-files) '() (begin @@ -219,7 +221,7 @@ #t))) (let ((derivation - (if (file-exists? derivation-name) + (if (valid-path? store derivation-name) (read-derivation-from-file derivation-name) (begin (retry-on-error (lambda () diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm index 5105e17..82aa333 100644 --- a/guix-build-coordinator/client-communication.scm +++ b/guix-build-coordinator/client-communication.scm @@ -30,6 +30,7 @@ #:use-module (web request) #:use-module (web response) #:use-module (system repl error-handling) + #:use-module (guix store) #:use-module (guix derivations) #:use-module (guix-build-coordinator utils) #:use-module (guix-build-coordinator utils fibers) @@ -166,7 +167,8 @@ (let ((derivation-database-entry (datastore-find-derivation datastore derivation-file))) (unless derivation-database-entry - (unless (file-exists? derivation-file) + (unless (with-store store + (valid-path? store derivation-file)) (call-with-worker-thread substitutes-channel (lambda () diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm index f12cab0..ef26d3a 100644 --- a/guix-build-coordinator/utils.scm +++ b/guix-build-coordinator/utils.scm @@ -317,7 +317,8 @@ upcoming chunk." (lambda (key . args) ;; This is a hack, to ignore errors relating to closing the store ;; connection. - (if (file-exists? derivation-name) + (if (with-store store + (valid-path? store derivation-name)) #t (error (simple-format #f "could not substitute ~A\n" derivation-name)))))) -- cgit v1.2.3