From a667db2f5deed680a1703cfb4942827a38517586 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 11 Mar 2024 19:34:20 +0000 Subject: Don't start new jobs when there's low disk space --- guix-data-service/jobs.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/guix-data-service/jobs.scm b/guix-data-service/jobs.scm index 8217d52..7d62be3 100644 --- a/guix-data-service/jobs.scm +++ b/guix-data-service/jobs.scm @@ -22,6 +22,7 @@ #:use-module (ice-9 atomic) #:use-module (ice-9 textual-ports) #:use-module (squee) + #:use-module (guix build syscalls) #:use-module (guix-data-service utils) #:use-module (guix-data-service database) #:use-module (guix-data-service jobs load-new-guix-revision) @@ -128,7 +129,15 @@ guix-data-service: error: missing log line: ~A skip-system-tests? per-job-parallelism) (define (fetch-new-jobs) - (fetch-unlocked-jobs conn)) + (let ((free-space (free-disk-space "/gnu/store"))) + (if (< free-space (* 2 (expt 2 30))) ; 2G + (begin + (simple-format + (current-error-port) + "not starting new jobs, low free disk space on /gnu/store (~A)\n" + free-space) + '()) + (fetch-unlocked-jobs conn)))) (define (process-job job-id) (let ((log-port (start-thread-for-process-output job-id))) -- cgit v1.2.3