diff options
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 67ede3f..f6889e5 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -1096,15 +1096,23 @@ " exception: " exn)) #:unwind? #t)) (lambda () - (while #t - (match (datastore-list-unprocessed-hook-events datastore event-name 1) - (() - (wait-condition-variable condvar - mtx - (+ (time-second (current-time)) - wait-timeout-seconds))) - (((id event arguments)) - (process-event id event arguments handler))))) + (with-throw-handler #t + (lambda () + (while #t + (match (datastore-list-unprocessed-hook-events datastore event-name 1) + (() + (wait-condition-variable condvar + mtx + (+ (time-second (current-time)) + wait-timeout-seconds))) + (((id event arguments)) + (process-event id event arguments handler))))) + (lambda (key . args) + (log-msg + (build-coordinator-logger build-coordinator) + 'CRITICAL + "error in build allocator thread: " key " " args) + (backtrace)))) #:unwind? #t)))) condvar)) |