From: Chunmei Liu Date: Tue, 6 May 2025 22:32:25 +0000 (+0000) Subject: crimson/osd/pg_backend: needn't check if os.exist for X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=10028897c1db3506d3f22ac41da4beec9a7caf09;p=ceph.git crimson/osd/pg_backend: needn't check if os.exist for omap_get_vals_by_keys fix ./bin/ceph_test_cls_cmpomap error for noexist tests since the test case expect false value return, not error code. Signed-off-by: Chunmei Liu --- diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 42f5f824202..c83ec59122f 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -1555,11 +1555,6 @@ PGBackend::omap_get_vals_by_keys( OSDOp& osd_op, object_stat_sum_t& delta_stats) const { - if (!os.exists || os.oi.is_whiteout()) { - logger().debug("{}: object does not exist: {}", __func__, os.oi.soid); - return crimson::ct_error::enoent::make(); - } - std::set keys_to_get; try { auto p = osd_op.indata.cbegin(); @@ -1578,6 +1573,9 @@ PGBackend::omap_get_vals_by_keys( crimson::ct_error::enodata::handle([&osd_op] { uint32_t num = 0; encode(num, osd_op.outdata); + // Although an error should be expected here since the object doesn't exist, + // we want to match classic's behavior as clients possibly rely on it. + // Return an empty, but successful return instead. osd_op.rval = 0; return ll_read_errorator::now(); }),