diff options
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 12 |
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 |