cbaines pushed a commit to branch master
in repository data-service.

commit 4d0813c3318bf59eae485817ede6facd0d0b4eee
Author: Christopher Baines <[email protected]>
AuthorDate: Sat Aug 10 21:07:35 2024 +0100

    Add more logging to backfilling 
guix_revision_package_derivation_distribution_counts
---
 .../model/guix-revision-package-derivation.scm     | 47 +++++++++++++---------
 1 file changed, 29 insertions(+), 18 deletions(-)

diff --git a/guix-data-service/model/guix-revision-package-derivation.scm 
b/guix-data-service/model/guix-revision-package-derivation.scm
index 99a7079..733cf34 100644
--- a/guix-data-service/model/guix-revision-package-derivation.scm
+++ b/guix-data-service/model/guix-revision-package-derivation.scm
@@ -20,6 +20,7 @@
   #:use-module (ice-9 threads)
   #:use-module (squee)
   #:use-module (guix-data-service database)
+  #:use-module (guix-data-service utils)
   #:use-module (guix-data-service model system)
   #:export (insert-guix-revision-package-derivations
 
@@ -174,30 +175,40 @@ ORDER BY id DESC")))
 
   (for-each
    (lambda (revision-id)
-     (simple-format #t "backfilling 
guix_revision_package_derivation_distribution_counts for revision ~A\n" 
revision-id)
-     (let ((system-ids-and-targets
-            (exec-query
-             conn
-             "
+     (with-exception-handler
+         (lambda (exn)
+           (simple-format
+            #t "exception backfilling 
guix_revision_package_derivation_distribution_counts for revision ~A: ~A\n"
+            revision-id exn))
+       (lambda ()
+         (with-time-logging
+             (simple-format
+              #f "backfilling 
guix_revision_package_derivation_distribution_counts for revision ~A"
+              revision-id)
+           (let ((system-ids-and-targets
+                  (exec-query
+                   conn
+                   "
 SELECT DISTINCT system_id, target
 FROM package_derivations
 INNER JOIN guix_revision_package_derivations
   ON package_derivations.id = 
guix_revision_package_derivations.package_derivation_id
 WHERE revision_id = $1"
-             (list revision-id))))
+                   (list revision-id))))
 
-       (with-postgresql-transaction
-        conn
-        (lambda (conn)
-          (for-each
-           (match-lambda
-             ((system-id target)
-              (insert-guix-revision-package-derivation-distribution-counts
-               conn
-               revision-id
-               system-id
-               target)))
-           system-ids-and-targets)))))
+             (with-postgresql-transaction
+              conn
+              (lambda (conn)
+                (for-each
+                 (match-lambda
+                   ((system-id target)
+                    
(insert-guix-revision-package-derivation-distribution-counts
+                     conn
+                     revision-id
+                     system-id
+                     target)))
+                 system-ids-and-targets))))))
+       #:unwind? #t))
    revision-ids))
 
 (define* (get-sql-to-select-package-and-related-derivations-for-revision

Reply via email to