aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/jobs/load-new-guix-revision.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/jobs/load-new-guix-revision.scm')
-rw-r--r--guix-data-service/jobs/load-new-guix-revision.scm34
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)