diff options
author | John W. Parent <45471568+johnwparent@users.noreply.github.com> | 2024-05-15 15:41:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-15 15:41:51 -0400 |
commit | 43291aa723f48a326c6d613c5f481a48ef4198e9 (patch) | |
tree | 992238aae32a7f2896815baabaab0bfbc74c2886 /lib | |
parent | d0589285f72bc6ec9b5f804612448954dcdf819c (diff) | |
download | spack-43291aa723f48a326c6d613c5f481a48ef4198e9.tar.gz spack-43291aa723f48a326c6d613c5f481a48ef4198e9.tar.bz2 spack-43291aa723f48a326c6d613c5f481a48ef4198e9.tar.xz spack-43291aa723f48a326c6d613c5f481a48ef4198e9.zip |
Cdash reporting timeout (#44213)
* Add timeout to cdash reporter PUT request
Add cdash timeout everywhere
Correct mock responder api
* Style
* brief doc
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/ci.py | 7 | ||||
-rw-r--r-- | lib/spack/spack/reporters/cdash.py | 5 | ||||
-rw-r--r-- | lib/spack/spack/test/ci.py | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py index f0b9d8defe..c08d2e00a1 100644 --- a/lib/spack/spack/ci.py +++ b/lib/spack/spack/ci.py @@ -44,6 +44,7 @@ import spack.util.web as web_util from spack import traverse from spack.error import SpackError from spack.reporters import CDash, CDashConfiguration +from spack.reporters.cdash import SPACK_CDASH_TIMEOUT from spack.reporters.cdash import build_stamp as cdash_build_stamp # See https://docs.gitlab.com/ee/ci/yaml/#retry for descriptions of conditions @@ -1506,7 +1507,7 @@ def download_and_extract_artifacts(url, work_dir): request = Request(url, headers=headers) request.get_method = lambda: "GET" - response = opener.open(request) + response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT) response_code = response.getcode() if response_code != 200: @@ -2254,7 +2255,7 @@ hash={spec.dag_hash()} arch={spec.architecture} ({self.build_group})" request = Request(url, data=enc_data, headers=headers) - response = opener.open(request) + response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT) response_code = response.getcode() if response_code not in [200, 201]: @@ -2300,7 +2301,7 @@ hash={spec.dag_hash()} arch={spec.architecture} ({self.build_group})" request = Request(url, data=enc_data, headers=headers) request.get_method = lambda: "PUT" - response = opener.open(request) + response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT) response_code = response.getcode() if response_code != 200: diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py index 502f89d764..0c140a488d 100644 --- a/lib/spack/spack/reporters/cdash.py +++ b/lib/spack/spack/reporters/cdash.py @@ -58,7 +58,8 @@ MAP_PHASES_TO_CDASH = { # Initialize data structures common to each phase's report. CDASH_PHASES = set(MAP_PHASES_TO_CDASH.values()) CDASH_PHASES.add("update") - +# CDash request timeout in seconds +SPACK_CDASH_TIMEOUT = 45 CDashConfiguration = collections.namedtuple( "CDashConfiguration", ["upload_url", "packages", "build", "site", "buildstamp", "track"] @@ -447,7 +448,7 @@ class CDash(Reporter): # By default, urllib2 only support GET and POST. # CDash expects this file to be uploaded via PUT. request.get_method = lambda: "PUT" - response = opener.open(request) + response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT) if self.current_package_name not in self.buildIds: resp_value = response.read() if isinstance(resp_value, bytes): diff --git a/lib/spack/spack/test/ci.py b/lib/spack/spack/test/ci.py index 4eef036ddb..f3d47c45e9 100644 --- a/lib/spack/spack/test/ci.py +++ b/lib/spack/spack/test/ci.py @@ -51,7 +51,7 @@ class FakeWebResponder: self._content = content_to_read self._read = [False for c in content_to_read] - def open(self, request): + def open(self, request, data=None, timeout=object()): return self def getcode(self): |