From a01372cf3d0a70a4e39cd3a43dce8d694f1e2aa9 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 20 Jun 2020 12:04:31 +0100 Subject: Fetch the derivation ordered allocator data in a transaction To try and avoid the data from the two queries being inconsistent. --- guix-build-coordinator/build-allocator.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm index 48896ab..fda893c 100644 --- a/guix-build-coordinator/build-allocator.scm +++ b/guix-build-coordinator/build-allocator.scm @@ -20,6 +20,7 @@ (define-module (guix-build-coordinator build-allocator) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:use-module (ice-9 match) #:use-module (guix memoization) #:use-module (guix-build-coordinator utils) @@ -336,11 +337,16 @@ build-ids) build-ids)) - (let ((derived-build-priorities-hash - (datastore-fetch-unprocessed-builds-with-propagated-priorities - datastore)) - (build-ids-for-unprocessed-builds-with-built-inputs - (datastore-list-unprocessed-builds-with-built-inputs datastore))) + (let-values + (((derived-build-priorities-hash + build-ids-for-unprocessed-builds-with-built-inputs) + (datastore-call-with-transaction + datastore + (lambda () + (values + (datastore-fetch-unprocessed-builds-with-propagated-priorities datastore) + (datastore-list-unprocessed-builds-with-built-inputs datastore))) + #:readonly? #t))) (define (build-sorting-function-for-agent agent-id) (lambda (a b) -- cgit v1.2.3