From 7ed0a927d889ba800800f96370aba7824e20fa10 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 27 Mar 2021 17:48:42 +0000 Subject: Include cancelled builds when looking for blocking builds As a build being cancelled can explain why others can't progress. --- guix-build-coordinator/datastore/sqlite.scm | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'guix-build-coordinator') diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index fb88fb5..e374bbc 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -757,22 +757,30 @@ SELECT INNER JOIN builds AS blocked_builds ON related_derivations.name = blocked_builds.derivation_name AND blocked_builds.processed = 0 + AND blocked_builds.canceled = 0 ) FROM builds" (if system " INNER JOIN derivations ON derivations.name = builds.derivation_name" "") - " -INNER JOIN build_results + " +LEFT JOIN build_results ON builds.uuid = build_results.build_id -WHERE builds.processed = 1 - AND build_results.result = 'failure'" - (if system - " - AND derivations.system = :system" - "") +WHERE + ( + ( + builds.processed = 1 + AND build_results.result = 'failure' + ) OR ( + builds.canceled = 1 + ) + )" + (if system " + AND derivations.system = :system" + "") + " AND NOT EXISTS ( SELECT 1 FROM derivation_outputs @@ -783,8 +791,9 @@ WHERE builds.processed = 1 INNER JOIN build_results AS other_build_results ON other_builds.uuid = other_build_results.build_id WHERE derivation_outputs.derivation_name = builds.derivation_name - AND other_build_results.result = 'success' -) ORDER BY 3 DESC, 2, 1") + AND other_build_results.result = 'success' + ) +ORDER BY 3 DESC, 2, 1") #:cache? #t))) (when system -- cgit v1.2.3