diff options
Diffstat (limited to 'guix-data-service/jobs/load-new-guix-revision.scm')
-rw-r--r-- | guix-data-service/jobs/load-new-guix-revision.scm | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index 4218849..4d9ac4d 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -346,20 +346,32 @@ (inferior-eval '(%graft? #f) inf) (exec-query conn "BEGIN") - (let ((package-derivation-ids - (inferior-guix->package-derivation-ids store conn inf)) - (guix-revision-id - (insert-guix-revision conn url commit store-path))) + (with-throw-handler + #t + (lambda () + (let ((package-derivation-ids + (inferior-guix->package-derivation-ids store conn inf)) + (guix-revision-id + (insert-guix-revision conn url commit store-path))) - (insert-guix-revision-package-derivations conn - guix-revision-id - package-derivation-ids) + (insert-guix-revision-package-derivations conn + guix-revision-id + package-derivation-ids) - (exec-query conn "COMMIT") + (exec-query conn "COMMIT") - (simple-format - #t "Successfully loaded ~A package/derivation pairs\n" - (length package-derivation-ids))))) + (simple-format + #t "Successfully loaded ~A package/derivation pairs\n" + (length package-derivation-ids)))) + (lambda (key . args) + (simple-format (current-error-port) + "Failed extracting information: ~A ~A\n" + key args) + (kill ((@@ (guix inferior) inferior-pid) inf) SIGINT) + (simple-format (current-error-port) + "killed inferior\n\n") + (exec-query conn "ROLLBACK") + (simple-format (current-error-port) "FINISHED CLEAN UP\n\n"))))) (define (load-new-guix-revision conn url commit) (if (guix-revision-exists? conn url commit) |