From c0540457692e87fc8752a82bdaca9ce8167914db Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 21 Apr 2023 16:19:24 +0100 Subject: Deallocate canceled builds from agents when they startup --- guix-build-coordinator/coordinator.scm | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'guix-build-coordinator/coordinator.scm') diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index d7bc605..b8a93d4 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -825,11 +825,30 @@ active?) (trigger-build-allocation coordinator)) -(define (update-agent-status coordinator agent-uuid - status 1min-load-average - processor-count) +(define* (update-agent-status coordinator agent-uuid + status 1min-load-average + processor-count + #:key initial-status-update?) + (define datastore + (build-coordinator-datastore coordinator)) + + (when initial-status-update? + (datastore-call-with-transaction + datastore + (lambda _ + (for-each + (lambda (build) + (when (assq-ref build 'canceled) + (datastore-remove-build-allocation + datastore + (assq-ref build 'uuid) + agent-uuid))) + (datastore-list-agent-builds + datastore + agent-uuid))))) + (datastore-update-agent-status - (build-coordinator-datastore coordinator) + datastore agent-uuid status 1min-load-average -- cgit v1.2.3