GNU bug report logs - #75782
[PATCH cuirass] remote-server: Disable url-fetch* fallback when triggering substitutes.

Previous Next

Package: guix-patches;

Reported by: vicvbcun <guix <at> ikherbers.com>

Date: Thu, 23 Jan 2025 11:38:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: vicvbcun <guix <at> ikherbers.com>
To: 75782 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [bug#75782] [PATCH cuirass v2] remote-server: Disable url-fetch* fallback when triggering substitutes.
Date: Thu, 13 Feb 2025 17:17:07 +0100
If an output is larger than the configured cache bypass threshold and the
substitute hasn't already been baked, guix publish returns a 404 response and
schedules baking.  This error code causes `url-fetch*' to instead try fetching
the narinfo from the Internet Archive.  Suppress this fallback behaviour as
the sole purpose is triggering the baking of substitutes.

* src/cuirass/scripts/remote-server.scm (trigger-substitutes-baking): Disable
all download methods except "upstream" before calling `url-fetch*'.
---

Changes since v1:
  - bind `%download-methods' to '(upstream) instead of the empty list

 src/cuirass/scripts/remote-server.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/cuirass/scripts/remote-server.scm b/src/cuirass/scripts/remote-server.scm
index caeb8ed..90a3db7 100644
--- a/src/cuirass/scripts/remote-server.scm
+++ b/src/cuirass/scripts/remote-server.scm
@@ -45,7 +45,8 @@
   #:use-module ((guix build utils) #:select (mkdir-p
                                              strip-store-file-name
                                              call-with-temporary-output-file))
-  #:autoload   (guix build download) (url-fetch)
+  #:autoload   (guix build download) (%download-methods
+                                      url-fetch)
   #:autoload   (gcrypt pk-crypto) (read-file-sexp)
   #:use-module (simple-zmq)
   #:use-module (srfi srfi-1)
@@ -255,7 +256,13 @@ Start a remote build server.\n") (%program-name))
     (log-debug "Bake: ~a" narinfo-url)
     (call-with-temporary-output-file
      (lambda (tmp-file port)
-       (url-fetch* narinfo-url tmp-file)))))
+       (parameterize
+           ;; XXX: guix publish returns a 404 response when the output is
+           ;; large and has not already been baked.  By default, this causes
+           ;; `url-fetch*' to fall back to the Internet Archive.  Disable
+           ;; this.
+           ((%download-methods '(upstream)))
+         (url-fetch* narinfo-url tmp-file))))))
 
 (define (add-to-store drv outputs url)
   "Add the OUTPUTS that are available from the substitute server at URL to the

base-commit: 6b499a74999fc05e19e349e2c8ca8e7f417147f5
-- 
2.48.1





This bug report was last modified 99 days ago.

Previous Next


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