guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/04: Make backfilling blocked_builds a bit smarter


From: Christopher Baines
Subject: 03/04: Make backfilling blocked_builds a bit smarter
Date: Sat, 12 Nov 2022 06:55:18 -0500 (EST)

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

commit c46ee476325e018f43aa5d0c73b938cf726c9fce
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Sat Nov 12 11:42:33 2022 +0000

    Make backfilling blocked_builds a bit smarter
    
    And drop the chunk size.
---
 guix-data-service/model/blocked-builds.scm | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/guix-data-service/model/blocked-builds.scm 
b/guix-data-service/model/blocked-builds.scm
index 480b554..1867f66 100644
--- a/guix-data-service/model/blocked-builds.scm
+++ b/guix-data-service/model/blocked-builds.scm
@@ -312,7 +312,23 @@ WHERE EXISTS (
     "
 SELECT build_id
 FROM latest_build_status
- WHERE status IN ('failed', 'failed-dependency', 'failed-other', 'canceled')")
+INNER JOIN builds
+  ON latest_build_status.build_id = builds.id
+WHERE status IN ('failed', 'failed-dependency', 'failed-other', 'canceled')
+  AND NOT EXISTS (
+    SELECT 1
+    FROM builds AS other_builds
+    INNER JOIN latest_build_status AS other_latest_build_status
+      ON other_builds.id = other_latest_build_status.build_id
+    WHERE other_builds.derivation_output_details_set_id =
+          builds.derivation_output_details_set_id
+      AND other_latest_build_status.status IN ('succeeded', 'scheduled')
+  )
+  AND NOT EXISTS (
+    SELECT 1
+    FROM blocked_builds
+    WHERE blocking_derivation_output_details_set_id = 
builds.derivation_output_details_set_id
+  )")
 
   (let ((build-ids
          (map car (exec-query conn query '()))))
@@ -329,7 +345,7 @@ FROM latest_build_status
             (handle-populating-blocked-builds-for-build-failures
              conn
              (map string->number ids))))))
-     500
+     200
      build-ids)))
 
 (define* (select-blocking-builds conn revision-commit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]