diff options
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 60 |
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 |