diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/guix-data-service-process-jobs.in | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/scripts/guix-data-service-process-jobs.in b/scripts/guix-data-service-process-jobs.in index da4f614..ae1542c 100644 --- a/scripts/guix-data-service-process-jobs.in +++ b/scripts/guix-data-service-process-jobs.in @@ -77,12 +77,26 @@ "process-jobs" (lambda (conn) (simple-format #t "Ready to process jobs...\n") - (process-jobs conn - #:max-processes (assq-ref opts 'max-processes) - #:latest-branch-revision-max-processes - (or (assq-ref opts 'latest-branch-revision-max-processes) - (* 2 (assq-ref opts 'max-processes))) - #:skip-system-tests? - (assq-ref opts 'skip-system-tests) - #:per-job-parallelism - (assq-ref opts 'per-job-parallelism))))) + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "exception: ~A\n" + exn) + (exit 1)) + (lambda () + (with-throw-handler #t + (lambda () + (process-jobs + conn + #:max-processes (assq-ref opts 'max-processes) + #:latest-branch-revision-max-processes + (or (assq-ref opts 'latest-branch-revision-max-processes) + (* 2 (assq-ref opts 'max-processes))) + #:skip-system-tests? + (assq-ref opts 'skip-system-tests) + #:per-job-parallelism + (assq-ref opts 'per-job-parallelism))) + (lambda _ + (backtrace)))) + #:unwind? #t)))) |