aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-05-13 22:59:40 +0100
committerChristopher Baines <mail@cbaines.net>2020-05-13 22:59:40 +0100
commit53df9c2591d94d52f96599285c2b37cd96c4e6b3 (patch)
treefe7af3399958e447232b6d8185fd7ef721cc2f3f
parent031006f055512a23ded5b390e0afa0f0a35b136e (diff)
downloadbuild-coordinator-53df9c2591d94d52f96599285c2b37cd96c4e6b3.tar
build-coordinator-53df9c2591d94d52f96599285c2b37cd96c4e6b3.tar.gz
Make sure to include all unprocessed builds in the graph
When only starting from builds where the derivation isn't used in other derivations, you risk missing parts of the derivation graph that aren't covered with builds.
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm11
1 files changed, 1 insertions, 10 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index 8c3c598..7f06b89 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -951,18 +951,9 @@ EXCEPT
WITH RECURSIVE builds_with_derived_priority(
uuid, derivation_name, derived_priority
) AS (
- -- Start with builds for derivations where outputs from that derivation
- -- aren't used by other derivations
SELECT builds.uuid, builds.derivation_name, builds.priority
FROM builds
- WHERE
- NOT EXISTS (
- SELECT 1
- FROM derivation_inputs
- INNER JOIN derivation_outputs
- ON derivation_inputs.derivation_output_id = derivation_outputs.id
- WHERE derivation_outputs.derivation_name = builds.derivation_name
- )
+ WHERE processed = 0
UNION
SELECT builds.uuid, builds.derivation_name,
max(builds.priority, builds_with_derived_priority.derived_priority)