diff options
author | Christopher Baines <mail@cbaines.net> | 2023-01-30 12:25:59 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-01-30 13:21:38 +0000 |
commit | 8ca5f045d232124e97069a30253853abc66be03e (patch) | |
tree | ec2c1f2185c4dec267c99696f059d0e5fe60084e | |
parent | 620ebbba55bfe8c001caf03aac74ed298f1f9669 (diff) | |
download | build-coordinator-8ca5f045d232124e97069a30253853abc66be03e.tar build-coordinator-8ca5f045d232124e97069a30253853abc66be03e.tar.gz |
Tweak error handing around reading derivaitons when submitting builds
I don't think the alarm based with-timeout was working, so remove that and
make the exception handling more general.
-rw-r--r-- | guix-build-coordinator/client-communication.scm | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm index e796bd8..926c4f4 100644 --- a/guix-build-coordinator/client-communication.scm +++ b/guix-build-coordinator/client-communication.scm @@ -435,24 +435,26 @@ ,derivation-file #:read-drv ,(lambda (derivation-file) - (with-timeout 30 - (begin - (log-msg (build-coordinator-logger build-coordinator) - 'WARN - "substituting derivation " derivation-file - " timed out") + (with-exception-handler + (lambda (exn) + (log-msg + (build-coordinator-logger build-coordinator) + 'WARN + "exception substituting derivation " derivation-file + ": " exn) - (if (null? (or substitute-urls '())) - ;; Try again - (read-drv/substitute derivation-file) - (call-with-worker-thread - substitutes-channel - (lambda () - (read-derivation-through-substitutes - derivation-file - substitute-urls))))) - - (read-drv/substitute derivation-file))) + (if (null? (or substitute-urls '())) + ;; Try again + (read-drv/substitute derivation-file) + (call-with-worker-thread + substitutes-channel + (lambda () + (read-derivation-through-substitutes + derivation-file + substitute-urls))))) + (lambda () + (read-drv/substitute derivation-file)) + #:unwind? #t)) ,@(let ((priority (assoc-ref body "priority"))) (if priority `(#:priority ,priority) |