aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-29 07:59:00 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-29 07:59:00 +0100
commit3af9759c3ebe205d84134707a506809ca0973a57 (patch)
treeee0526f84100ab456d387cb59735609f63a1eda9
parent9c8f568ae995ecb8c5e0455e3452985cfa899797 (diff)
downloadbuild-coordinator-3af9759c3ebe205d84134707a506809ca0973a57.tar
build-coordinator-3af9759c3ebe205d84134707a506809ca0973a57.tar.gz
Improve the error handling in datastore-store-build-result
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm12
1 files changed, 7 insertions, 5 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index e7acd9f..7906081 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -382,18 +382,20 @@ VALUES "
(lambda (db)
(sqlite-exec db "BEGIN TRANSACTION;")
(with-exception-handler
- (lambda (key . args)
+ (lambda (exn)
(simple-format (current-error-port)
- "error: sqlite: ~A ~A\n"
- key args)
- (sqlite-exec db "ROLLBACK TRANSACTION;"))
+ "error: sqlite: ~A\n"
+ exn)
+ (sqlite-exec db "ROLLBACK TRANSACTION;")
+ (raise-exception exn))
(lambda ()
(insert-build-result db build-id agent-id result failure-reason)
(remove-build-allocation db build-id agent-id)
(mark-build-as-processed db build-id)
(when output-metadata
(store-output-metadata db build-id output-metadata))
- (sqlite-exec db "COMMIT TRANSACTION;")))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))
#t)
(define (insert-setup-failure-and-remove-allocation