GNU bug report logs - #70494
[PATCH 00/23] Groundwork for the Guile guix-daemon

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Sun, 21 Apr 2024 09:37:01 UTC

Severity: normal

Tags: patch

Full log


View this message in rfc822 format

From: Christopher Baines <mail <at> cbaines.net>
To: 70494 <at> debbugs.gnu.org
Cc: Christopher Baines <guix <at> cbaines.net>, Josselin Poiret <dev <at> jpoiret.xyz>, Ludovic Courtès <ludo <at> gnu.org>, Mathieu Othacehe <othacehe <at> gnu.org>, Ricardo Wurmus <rekado <at> elephly.net>, Simon Tournier <zimon.toutoune <at> gmail.com>, Tobias Geerinckx-Rice <me <at> tobias.gr>
Subject: [bug#70494] [PATCH 23/23] substitutes: Add #:keep-alive? keyword argument to download-nar.
Date: Sun, 21 Apr 2024 10:42:41 +0100
To be consistent with other procedures that make network requests.

* guix/substitutes.scm (download-nar): Add #:keep-alive? option.
* guix/scripts/substitute.scm (process-substitution/fallback,
process-substitution): Call download-nar with #:keep-alive? #t.

Change-Id: I83b27d0c3a0916d058fbbbeb7aa77dbb8a742768
---
 guix/scripts/substitute.scm |  6 ++++--
 guix/substitutes.scm        | 11 +++++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index c74da618b5..68c24820c6 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -410,7 +410,8 @@ (define* (process-substitution/fallback narinfo destination
                               #:prefer-fast-decompression?
                               prefer-fast-decompression?
                               #:open-connection-for-uri
-                              open-connection-for-uri/cached))
+                              open-connection-for-uri/cached
+                              #:keep-alive? #t))
               (loop rest)))
          (()
           (loop rest)))))))
@@ -463,7 +464,8 @@ (define* (process-substitution store-item destination
                          #:print-build-trace? print-build-trace?
                          #:prefer-fast-decompression? prefer-fast-decompression?
                          #:open-connection-for-uri
-                         open-connection-for-uri/cached))))
+                         open-connection-for-uri/cached
+                         #:keep-alive? #t))))
     (values narinfo
             expected-hash
             actual-hash)))
diff --git a/guix/substitutes.scm b/guix/substitutes.scm
index 5089f3a6da..7c8f8cc973 100644
--- a/guix/substitutes.scm
+++ b/guix/substitutes.scm
@@ -462,7 +462,8 @@ (define* (download-nar narinfo destination
                        #:key deduplicate? print-build-trace?
                        (fetch-timeout %fetch-timeout)
                        prefer-fast-decompression?
-                       (open-connection-for-uri guix:open-connection-for-uri))
+                       (open-connection-for-uri guix:open-connection-for-uri)
+                       (keep-alive? #f))
   "Download the nar prescribed in NARINFO, which is assumed to be authentic
 and authorized, and write it to DESTINATION.  When DEDUPLICATE? is true, and
 if DESTINATION is in the store, deduplicate its files."
@@ -505,7 +506,7 @@ (define* (download-nar narinfo destination
                           (raise c))))
              (http-fetch uri #:text? #f
                          #:port port
-                         #:keep-alive? #t
+                         #:keep-alive? keep-alive?
                          #:buffered? #f)))))
       (else
        (raise
@@ -586,6 +587,12 @@ (define* (download-nar narinfo destination
       ;; Wait for the reporter to finish.
       (every (compose zero? cdr waitpid) pids)
 
+      ;; TODO The port should also be closed if the relevant HTTP response
+      ;; header is set, but http-fetch doesn't currently share that
+      ;; information
+      (unless keep-alive?
+        (close-port raw))
+
       (values expected
               (get-hash)))))
 
-- 
2.41.0





This bug report was last modified 1 year and 28 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.