aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-build-coordinator/build-allocator.scm4
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm11
2 files changed, 8 insertions, 7 deletions
diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm
index d3030f5..49868a3 100644
--- a/guix-build-coordinator/build-allocator.scm
+++ b/guix-build-coordinator/build-allocator.scm
@@ -37,7 +37,7 @@
(let ((agents (datastore-list-agents datastore))
(builds (datastore-list-unprocessed-builds datastore))
- (setup-failures
+ (setup-failures-hash
(datastore-fetch-setup-failures datastore)))
(define (filter-builds-for-agent agent-id)
@@ -77,7 +77,7 @@
(log "build:" (assq-ref build 'uuid))
(let* ((build-id (assq-ref build 'uuid))
(setup-failures-for-build
- (or (assoc-ref setup-failures build-id)
+ (or (hash-ref setup-failures-hash build-id)
'()))
(relevant-setup-failures
(filter relevant-setup-failure?
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index e4a5aab..c3859de 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -697,16 +697,17 @@ SELECT id, build_id, agent_id, failure_reason FROM setup_failures")))
(match row
(#(id build-id agent-id failure-reason)
(let ((failures-for-build-id
- (or (assoc-ref result build-id)
+ (or (hash-ref result build-id)
'())))
- (alist-cons
+ (hash-set!
+ result
build-id
(cons `((id . ,id)
(agent-id . ,agent-id)
(failure-reason . ,failure-reason))
- failures-for-build-id)
- (alist-delete build-id result))))))
- '()
+ failures-for-build-id)))))
+ result)
+ (make-hash-table)
statement)))
(sqlite-reset statement)