From fd31e6d8138da09e3480370dbe282db08d31629e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 9 Oct 2024 16:36:10 +0200 Subject: [PATCH] Bazel: skip git lfs endpoints presenting malformed data --- misc/bazel/internal/git_lfs_probe.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/misc/bazel/internal/git_lfs_probe.py b/misc/bazel/internal/git_lfs_probe.py index 22ca9855f54..4f0ee9fa30e 100755 --- a/misc/bazel/internal/git_lfs_probe.py +++ b/misc/bazel/internal/git_lfs_probe.py @@ -179,15 +179,18 @@ def get_locations(objects): try: with urllib.request.urlopen(req, timeout=TIMEOUT) as resp: data = json.load(resp) + assert len(data["objects"]) == len( + indexes + ), f"received {len(data)} objects, expected {len(indexes)}" + for i, resp in zip(indexes, data["objects"]): + ret[i] = f'{resp["oid"]} {resp["actions"]["download"]["href"]}' + return ret except urllib.error.URLError as e: warn(f"encountered {type(e).__name__} {e}, ignoring endpoint {endpoint.name}") continue - assert len(data["objects"]) == len( - indexes - ), f"received {len(data)} objects, expected {len(indexes)}" - for i, resp in zip(indexes, data["objects"]): - ret[i] = f'{resp["oid"]} {resp["actions"]["download"]["href"]}' - return ret + except KeyError: + warn(f"encountered malformed response, ignoring endpoint {endpoint.name}:\n{json.dumps(data, indent=2)}") + continue raise NoEndpointsFound