diff options
author | Ludovic Courtès <ludo@gnu.org> | 2024-03-29 15:58:42 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-03-30 01:01:31 +0100 |
commit | ddc9d66f2b00f62eb35c3da819dc684ec4a50227 (patch) | |
tree | 88393f546a750b5907a9bcef3170f5258bd358e5 | |
parent | 80a135d64bcf0b4fc567077ec35cf4275085114f (diff) | |
download | guix-ddc9d66f2b00f62eb35c3da819dc684ec4a50227.tar.gz |
substitute: Retry nar download upon networking error.
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 <adanskana@gmail.com> Change-Id: I91b92183b0165832645ee37d50c13445f9322525
-rwxr-xr-x | guix/scripts/substitute.scm | 6 |
1 files 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 <ludo@gnu.org> +;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2020 Christopher Baines <mail@cbaines.net> @@ -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))) |