From 8765a4f9fc124b428620048647df90ffff241cd3 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 23 Jun 2024 00:49:26 +0100 Subject: Don't abuse the reader threads to read derivations To avoid causing any issues with them. --- guix-build-coordinator/coordinator.scm | 40 ++++++++++++---------------------- 1 file changed, 14 insertions(+), 26 deletions(-) (limited to 'guix-build-coordinator') diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 8af826f..34878db 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -642,19 +642,13 @@ (derivation (if derivation-exists-in-database? #f ; unnecessary to fetch derivation - ;; Bit of a hack, but offload reading the derivation to a - ;; thread so that it doesn't block the fibers thread, since - ;; local I/O doesn't cooperate with fibers - (datastore-call-with-transaction - datastore - (lambda _ - (with-fibers-port-timeouts - (lambda () - (call-with-delay-logging read-drv - #:threshold 10 - #:args (list derivation-file))) - #:timeout 240)) - #:readonly? #t))) + ;; TODO Read the derivation in a separate thread + (with-fibers-port-timeouts + (lambda () + (call-with-delay-logging read-drv + #:threshold 10 + #:args (list derivation-file))) + #:timeout 240))) (system (or system-from-database @@ -786,19 +780,13 @@ (unless (datastore-find-derivation datastore derivation-file) (datastore-store-derivation datastore - ;; Bit of a hack, but offload reading the derivation to a thread so - ;; that it doesn't block the fibers thread, since local I/O doesn't - ;; cooperate with fibers - (datastore-call-with-transaction - datastore - (lambda _ - (with-fibers-port-timeouts - (lambda () - (call-with-delay-logging read-drv - #:threshold 10 - #:args (list derivation-file))) - #:timeout 30)) - #:readonly? #t))) + ;; TODO Read the derivation in a separate thread + (with-fibers-port-timeouts + (lambda () + (call-with-delay-logging read-drv + #:threshold 10 + #:args (list derivation-file))) + #:timeout 30))) (let ((related-derivations-lacking-builds (if ensure-all-related-derivation-outputs-have-builds? -- cgit v1.2.3