summary refs log tree commit diff
path: root/guix/scripts
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-04-17 16:00:16 +0200
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-19 20:12:20 -0400
commite95e65541ae7ce98c2f9095317fea4754ca5ac91 (patch)
treece090ce3ab1eade9d0c2a5624f6441289cc6048d /guix/scripts
parent2886a59d182aab5c3525046e1aa84e2281f12426 (diff)
downloadguix-e95e65541ae7ce98c2f9095317fea4754ca5ac91.tar.gz
substitute: Download nar from another server upon ETIMEDOUT.
Previously, 'guix substitute' would fail abruptly with something like:

  guix substitute: warning: while fetching https://ci.guix.gnu.org/nar/lzip/…-example: server is somewhat slow
  guix substitute: warning: try `--no-substitutes' if the problem persists
  guix substitute: error: connect*: Connection timed out
  substitution of /gnu/store/…-example failed

* guix/scripts/substitute.scm (network-error?): Add ETIMEDOUT.
Diffstat (limited to 'guix/scripts')
-rwxr-xr-xguix/scripts/substitute.scm2
1 files changed, 1 insertions, 1 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 109b0c7900..2bbe045364 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -577,7 +577,7 @@ STATUS-PORT."
       (or (and (system-error? exception)
                (let ((errno (system-error-errno
                              (cons 'system-error (exception-args exception)))))
-                 (memv errno (list ECONNRESET ECONNABORTED
+                 (memv errno (list ECONNRESET ECONNABORTED ETIMEDOUT
                                    ECONNREFUSED EHOSTUNREACH
                                    ENOENT))))     ;for "file://"
           (and (kind-and-args? exception)