summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-04-17 16:00:16 +0200
committerLudovic Courtès <ludo@gnu.org>2023-04-17 23:50:42 +0200
commit8136c1578eadbd0630695d86d52b6227db791539 (patch)
tree07aa68c7eec3d28bf8ed4ceee5bf3ff3b9617359
parent57e731c358d000f614fbda23654cae6a5e79df80 (diff)
downloadguix-8136c1578eadbd0630695d86d52b6227db791539.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.
-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)