aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore/sqlite.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm60
1 files changed, 35 insertions, 25 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index 0183da1..fa82aa1 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -200,14 +200,16 @@ WHERE agent_id = :agent_id AND password = :password")))
(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-derivation-and-return-outputs db derivation)
- (sqlite-exec db "COMMIT TRANSACTION;")))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))
#t)
(define-method (datastore-list-related-derivations-with-no-build
@@ -257,14 +259,16 @@ WHERE name != :derivation
(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 db uuid derivation-name priority)
- (sqlite-exec db "COMMIT TRANSACTION;")))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))
#t)
(define-method (datastore-count-build-results
@@ -452,11 +456,12 @@ INSERT INTO setup_failure_missing_inputs (
(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 ()
(let ((setup-failure-id
(insert-setup-failure-and-remove-allocation db
@@ -464,7 +469,8 @@ INSERT INTO setup_failure_missing_inputs (
agent-id
"missing_inputs")))
(insert-missing-inputs db setup-failure-id missing-inputs))
- (sqlite-exec db "COMMIT TRANSACTION;")))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))
#t)
(define-method (datastore-list-setup-failure-missing-inputs
@@ -823,16 +829,18 @@ INSERT INTO build_allocation_plan (build_id, agent_id, ordering) 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 ()
(clear-current-plan db)
(unless (null? planned-builds)
(insert-new-plan db planned-builds))
- (sqlite-exec db "COMMIT TRANSACTION;")))))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))))
#t)
(define-method (datastore-count-allocated-builds
@@ -896,15 +904,17 @@ WHERE build_id IN ("
(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-to-allocated-builds db agent-id build-ids)
(remove-builds-from-plan db build-ids)
- (sqlite-exec db "COMMIT TRANSACTION;")))))
+ (sqlite-exec db "COMMIT TRANSACTION;"))
+ #:unwind? #t)))
#t)
(define-method (datastore-list-allocation-plan-builds