From ddc9d66f2b00f62eb35c3da819dc684ec4a50227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 29 Mar 2024 15:58:42 +0100 Subject: [PATCH] substitute: Retry nar download upon networking error. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows ‘guix substitute’ to gracefully handle errors like: TLS error in procedure 'write_to_session_record_port': Error in the push function instead of exiting (“`guix substitute' died unexpectedly”). * guix/scripts/substitute.scm (download-nar)[try-fetch]: Catch ‘network-error?’ too. Reported-by: Ada Stevenson Change-Id: I91b92183b0165832645ee37d50c13445f9322525 --- guix/scripts/substitute.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 37cd08e289..3af0bf0019 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013-2023 Ludovic Courtès +;;; Copyright © 2013-2024 Ludovic Courtès ;;; Copyright © 2014 Nikita Karetnikov ;;; Copyright © 2018 Kyle Meyer ;;; Copyright © 2020 Christopher Baines @@ -494,7 +494,9 @@ STATUS-PORT." (define (try-fetch choices) (match choices (((uri compression file-size) rest ...) - (guard (c ((and (pair? rest) (http-get-error? c)) + (guard (c ((and (pair? rest) + (or (http-get-error? c) + (network-error? c))) (warning (G_ "download from '~a' failed, trying next URL~%") (uri->string uri)) (try-fetch rest)))