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

Reply via email to