summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kuhn <michael.kuhn@informatik.uni-hamburg.de>2020-02-25 16:42:12 +0100
committerPeter Scheibel <scheibel1@llnl.gov>2020-02-27 10:52:52 -0800
commit7325c207941f1dbd9d7cd83f9659eb25951ac1f9 (patch)
treeaee4533ee6f8fa887245a96ff722d57c384b9425
parentffb9591dc9b58b55c1f0e3a0e00d6232b0b9f3e0 (diff)
downloadspack-7325c207941f1dbd9d7cd83f9659eb25951ac1f9.tar.gz
spack-7325c207941f1dbd9d7cd83f9659eb25951ac1f9.tar.bz2
spack-7325c207941f1dbd9d7cd83f9659eb25951ac1f9.tar.xz
spack-7325c207941f1dbd9d7cd83f9659eb25951ac1f9.zip
config: Add a new option connect_timeout
connect_timeout can be used to increase the time Spack waits for the server to answer. This can be used to work around slow connections or servers. Fixes #14700
-rw-r--r--etc/spack/defaults/config.yaml6
-rw-r--r--lib/spack/spack/config.py1
-rw-r--r--lib/spack/spack/fetch_strategy.py8
-rw-r--r--lib/spack/spack/schema/config.py1
4 files changed, 14 insertions, 2 deletions
diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index 32745a309a..cc51060eae 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -75,6 +75,12 @@ config:
misc_cache: ~/.spack/cache
+ # Timeout in seconds used for downloading sources etc. This only applies
+ # to the connection phase and can be increased for slow connections or
+ # servers. 0 means no timeout.
+ connect_timeout: 10
+
+
# If this is false, tools like curl that use SSL will not verify
# certifiates. (e.g., curl will use use the -k option)
verify_ssl: true
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index b1c0ad73c7..7ed47340bf 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -97,6 +97,7 @@ configuration_paths = (
config_defaults = {
'config': {
'debug': False,
+ 'connect_timeout': 10,
'verify_ssl': True,
'checksum': True,
'dirty': False,
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 5ae01286c4..38ed17d28e 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -326,11 +326,15 @@ class URLFetchStrategy(FetchStrategy):
'-D',
'-', # print out HTML headers
'-L', # resolve 3xx redirects
- # Timeout if can't establish a connection after 10 sec.
- '--connect-timeout', '10',
url,
]
+ connect_timeout = spack.config.get('config:connect_timeout')
+
+ if connect_timeout > 0:
+ # Timeout if can't establish a connection after n sec.
+ curl_args.extend(['--connect-timeout', str(connect_timeout)])
+
if not spack.config.get('config:verify_ssl'):
curl_args.append('-k')
diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py
index 1378698825..a05af2f438 100644
--- a/lib/spack/spack/schema/config.py
+++ b/lib/spack/spack/schema/config.py
@@ -55,6 +55,7 @@ properties = {
},
'source_cache': {'type': 'string'},
'misc_cache': {'type': 'string'},
+ 'connect_timeout': {'type': 'integer', 'minimum': 0},
'verify_ssl': {'type': 'boolean'},
'suppress_gpg_warnings': {'type': 'boolean'},
'install_missing_compilers': {'type': 'boolean'},