From b74111ea2fb776333744bf769d40608b1a3fe869 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 5 Nov 2026 02:01:18 -0800 Subject: [PATCH] s3vectors test: skip a query lease tag released between list and HEAD (#12409) A query's lease tag is deleted by a background task after the query answers, so the encryption helper could list it and then get a 404 on HEAD. Skip only that case; any other missing object still fails. Co-authored-by: Claude Opus 5.5 --- test/s3vectors/s3vectors_test.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/s3vectors/s3vectors_test.py b/test/s3vectors/s3vectors_test.py index 89248c8ac8..9129e2b3a0 100644 --- a/test/s3vectors/s3vectors_test.py +++ b/test/s3vectors/s3vectors_test.py @@ -304,7 +304,16 @@ def index_object_encryption(vectors, bucket): keys = [o["Key"] for page in s3.get_paginator("list_objects_v2").paginate(Bucket=bucket, Prefix=f"vector/{INDEX}/") for o in page.get("Contents", []) if o["Size"] > 0] assert any("/data/" in key for key in keys) and any("/_versions/" in key for key in keys) - return {key: s3.head_object(Bucket=bucket, Key=key).get("ServerSideEncryption") for key in keys} + encryption = {} + for key in keys: + try: + encryption[key] = s3.head_object(Bucket=bucket, Key=key).get("ServerSideEncryption") + except ClientError as exc: + # a query's lease tag is released in the background after it answers + if "/_refs/tags/weed-vector-query-" in key and exc.response["Error"]["Code"] in ("404", "NoSuchKey"): + continue + raise + return encryption def test_vector_bucket_encryption(vectors):