aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-06-20 12:04:31 +0100
committerChristopher Baines <mail@cbaines.net>2020-06-20 12:04:31 +0100
commita01372cf3d0a70a4e39cd3a43dce8d694f1e2aa9 (patch)
treec2077a5b30c1c618e867c727c2ca907fdd44e493
parent52e6f12cee2680739954afd2e3a8c2d28d835fc6 (diff)
downloadbuild-coordinator-a01372cf3d0a70a4e39cd3a43dce8d694f1e2aa9.tar
build-coordinator-a01372cf3d0a70a4e39cd3a43dce8d694f1e2aa9.tar.gz
Fetch the derivation ordered allocator data in a transaction
To try and avoid the data from the two queries being inconsistent.
-rw-r--r--guix-build-coordinator/build-allocator.scm16
1 files 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)