From c92fbc83d4d2a98cc15e10d1fc4d5bcc13c9af5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 25 Feb 2025 16:54:10 +0100 Subject: [PATCH] substitutes: Tolerate GnuTLS push/pull errors when fetching narinfos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Fixes this infamous error: substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 0.0%guix substitute: error: TLS error in procedure 'write_to_session_record_port': Error in the push function. guix system: error: `/gnu/store/…-guix-1.4.0-32.5f6fdad/bin/guix substitute' died unexpectedly * guix/substitutes.scm (call-with-connection-error-handling): Report ‘error/push-error’ and ‘error/pull-error’ as mere warnings. Reported-by: Timo Wilken Change-Id: Ibc507cb88b164cbb91dff95aa18d9974c573f7c9 --- guix/substitutes.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/guix/substitutes.scm b/guix/substitutes.scm index e31b3940203..7ca55788d5e 100644 --- a/guix/substitutes.scm +++ b/guix/substitutes.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013-2021, 2023-2024 Ludovic Courtès +;;; Copyright © 2013-2021, 2023-2025 Ludovic Courtès ;;; Copyright © 2014 Nikita Karetnikov ;;; Copyright © 2018 Kyle Meyer ;;; Copyright © 2020 Christopher Baines @@ -35,7 +35,10 @@ #:select ((open-connection-for-uri . guix:open-connection-for-uri) resolve-uri-reference)) - #:autoload (gnutls) (error->string error/premature-termination) + #:autoload (gnutls) (error->string + error/premature-termination + error/pull-error + error/push-error) #:use-module (guix progress) #:use-module (ice-9 match) #:use-module (ice-9 format) @@ -154,7 +157,9 @@ indicates that PATH is unavailable at CACHE-URL." (system-error-errno `(system-error ,@args))))) #f) (('gnutls-error error proc . rest) - (if (eq? error error/premature-termination) + (if (memq error (list error/premature-termination + error/pull-error + error/push-error)) (begin (warning (G_ "~a: TLS connection failed: in ~a: ~a~%") host proc (error->string error))