aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-03-21 08:02:32 +0000
committerChristopher Baines <mail@cbaines.net>2023-03-21 08:02:32 +0000
commiteaf9292dc6a17edf9131864c65b76b4852e7411d (patch)
treeab79e153d06e4627b2933c90170a45044eb93f44 /guix-build-coordinator/agent.scm
parent7c1eedfba9ef5ccc5651cd5e88662c158e594a2c (diff)
downloadbuild-coordinator-eaf9292dc6a17edf9131864c65b76b4852e7411d.tar
build-coordinator-eaf9292dc6a17edf9131864c65b76b4852e7411d.tar.gz
Print a backtrace when a exception happens for build-things
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r--guix-build-coordinator/agent.scm17
1 files changed, 12 insertions, 5 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index 7365693..de28211 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -833,11 +833,18 @@ but the guix-daemon claims it's unavailable"
(raise-exception exn)))
#f)
(lambda ()
- (build-things store (list (derivation-file-name derivation)))
- (for-each (lambda (output)
- (add-temp-root store output))
- (map derivation-output-path
- (map cdr (derivation-outputs derivation))))
+ (with-throw-handler #t
+ (lambda ()
+ (build-things store (list (derivation-file-name derivation)))
+ (for-each (lambda (output)
+ (add-temp-root store output))
+ (map derivation-output-path
+ (map cdr (derivation-outputs derivation)))))
+ (lambda (key . args)
+ (simple-format (current-error-port)
+ "exception when performing build: ~A ~A\n"
+ key args)
+ (backtrace)))
#t)
#:unwind? #t)))