aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-01-30 12:25:59 +0000
committerChristopher Baines <mail@cbaines.net>2023-01-30 13:21:38 +0000
commit8ca5f045d232124e97069a30253853abc66be03e (patch)
treeec2c1f2185c4dec267c99696f059d0e5fe60084e
parent620ebbba55bfe8c001caf03aac74ed298f1f9669 (diff)
downloadbuild-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.scm36
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)