guix_mirror_bot pushed a commit to branch master
in repository guix.
commit aff0250401512379eafe3686b8fe8a200c4ec2b8
Author: Christopher Baines <[email protected]>
AuthorDate: Sat Dec 6 10:13:10 2025 +0000
guix: store: Make sure to force output after writes.
As not doing so only works with an unbuffered port.
* guix/store.scm (open-connection): Add (force-output port) calls after a
couple of writes.
(process-stderr): Add force-output where necessary.
Change-Id: I76483970f52d08a64b7568a3cbf6609d2b173dab
---
guix/store.scm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/guix/store.scm b/guix/store.scm
index 4fd42cc658..fc20811a14 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -431,6 +431,7 @@ daemon. Return a server object."
(buffering-output-port port
(make-bytevector 8192))))
(write-value integer %worker-magic-1 port)
+ (force-output port)
(let ((r (read-value integer port)))
(unless (= r %worker-magic-2)
(handshake-error))
@@ -447,6 +448,7 @@ daemon. Return a server object."
(when cpu-affinity
(write-value integer cpu-affinity port))
(write-value integer (if reserve-space? 1 0) port)
+ (force-output port)
(letrec* ((actual-built-in-builders
(if built-in-builders
(delay built-in-builders)
@@ -585,6 +587,7 @@ encoding conversion errors."
(m (modulo len 8)))
(dump-port p user-port len
#:buffer-size (if (<= len 16384) 16384 65536))
+ (force-output p)
(unless (zero? m)
;; Consume padding, as for strings.
(get-bytevector-n p (- 8 m))))
@@ -597,6 +600,7 @@ encoding conversion errors."
(data (make-bytevector max-len))
(len (get-bytevector-n! user-port data 0 max-len)))
(write-bytevector data p len)
+ (force-output p)
#f))
((= k %stderr-next)
;; Log a string. Build logs are usually UTF-8-encoded, but they