From: Gabriel BenHanokh Date: Mon, 24 Nov 2025 10:03:18 +0000 (+0000) Subject: minor changes requested by reviewer X-Git-Tag: testing/wip-pdonnell-testing-20251218.155915-debug~39^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=85079cf729ea00e77576d94f021ca3c33958c036;p=ceph-ci.git minor changes requested by reviewer Signed-off-by: Gabriel BenHanokh --- diff --git a/src/rgw/driver/rados/rgw_dedup.cc b/src/rgw/driver/rados/rgw_dedup.cc index d6e0804bf34..eaf0492cb48 100644 --- a/src/rgw/driver/rados/rgw_dedup.cc +++ b/src/rgw/driver/rados/rgw_dedup.cc @@ -1073,8 +1073,8 @@ namespace rgw::dedup { << cpp_strerror(-ret) << dendl; return 0; } - - unique_ptr p_obj = bucket->get_object(p_rec->obj_name); + const rgw_obj_index_key roi_key(p_rec->obj_name, p_rec->instance); + unique_ptr p_obj = bucket->get_object(roi_key); if (unlikely(!p_obj)) { // could happen when the object is removed between passes p_stats->ingress_failed_get_object++; @@ -1082,7 +1082,7 @@ namespace rgw::dedup { << p_rec->obj_name << ")" << dendl; return 0; } - p_obj->set_instance(p_rec->instance); + d_ctl.metadata_access_throttle.acquire(); ret = p_obj->get_obj_attrs(null_yield, dpp); if (unlikely(ret < 0)) { diff --git a/src/test/rgw/dedup/test_dedup.py b/src/test/rgw/dedup/test_dedup.py index eb766a7507e..4838f91056f 100644 --- a/src/test/rgw/dedup/test_dedup.py +++ b/src/test/rgw/dedup/test_dedup.py @@ -7,6 +7,7 @@ import subprocess import urllib.request import hashlib from multiprocessing import Process +import filecmp import os import string import shutil @@ -1419,7 +1420,6 @@ def gen_files_in_range_single_copy(files, count, min_size, max_size): idx=0 size_range = max_size - min_size - size=0 for i in range(0, count): size = min_size + random.randint(0, size_range-1) idx += 1 @@ -1432,19 +1432,19 @@ def gen_files_in_range_single_copy(files, count, min_size, max_size): #------------------------------------------------------------------------------- def simple_upload(bucket_name, files, conn, config, op_log, first_time): for f in files: - filename=f[0] + src_filename=f[0] size=f[1] if first_time: - key = filename + key = src_filename else: idx=random.randint(0, len(files)-1) key=files[idx][0] - log.debug("upload_file %s -> %s/%s (%d)", filename, bucket_name, key, size) - conn.upload_file(OUT_DIR + filename, bucket_name, key, Config=config) + log.debug("upload_file %s -> %s/%s (%d)", src_filename, bucket_name, key, size) + conn.upload_file(OUT_DIR + src_filename, bucket_name, key, Config=config) resp = conn.head_object(Bucket=bucket_name, Key=key) version_id = resp.get("VersionId") - op_log.append((filename, size, key, version_id)) + op_log.append((src_filename, size, key, version_id)) #------------------------------------------------------------------------------- def ver_calc_rados_obj_count(config, files, op_log): @@ -1453,15 +1453,15 @@ def ver_calc_rados_obj_count(config, files, op_log): unique_s3_objs = set() for f in files: - filename=f[0] + src_filename=f[0] size=f[1] - size_dict[filename] = size - num_copies_dict[filename] = 0 + size_dict[src_filename] = size + num_copies_dict[src_filename] = 0 for o in op_log: - filename=o[0] + src_filename=o[0] key=o[2] - num_copies_dict[filename] += 1 + num_copies_dict[src_filename] += 1 unique_s3_objs.add(key) rados_obj_total = 0 @@ -1484,30 +1484,31 @@ def ver_calc_rados_obj_count(config, files, op_log): #------------------------------------------------------------------------------- def verify_objects_with_version(bucket_name, op_log, conn, config): - tempfile = OUT_DIR + "temp" + tmpfile = OUT_DIR + "temp" pend_delete_set = set() for o in op_log: - filename=o[0] + src_filename=o[0] size=o[1] key=o[2] version_id=o[3] - log.debug("verify: %s/%s:: ver=%s", bucket_name, filename, version_id) + log.debug("verify: %s/%s:: ver=%s", bucket_name, src_filename, version_id) - # call garbage collect for tail objects before reading the same filename + # call garbage collect for tail objects before reading the same src_filename # this will help detect bad deletions - if filename in pend_delete_set: + if src_filename in pend_delete_set: result = admin(['gc', 'process', '--include-all']) assert result[1] == 0 # only objects larger than RADOS_OBJ_SIZE got tail-objects if size > RADOS_OBJ_SIZE: - pend_delete_set.add(filename) + pend_delete_set.add(src_filename) - conn.download_file(Bucket=bucket_name, Key=key, Filename=tempfile, + conn.download_file(Bucket=bucket_name, Key=key, Filename=tmpfile, Config=config, ExtraArgs={'VersionId': version_id}) - result = bash(['cmp', tempfile, OUT_DIR + filename]) - assert result[1] == 0 ,"Files %s and %s differ!!" % (key, tempfile) - os.remove(tempfile) + + equal = filecmp.cmp(tmpfile, OUT_DIR + src_filename, shallow=False) + assert equal ,"Files %s and %s differ!!" % (key, tmpfile) + os.remove(tmpfile) conn.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id)