]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/pg_backend: needn't check if os.exist for
authorChunmei Liu <chunmei.liu@ibm.com>
Tue, 6 May 2025 22:32:25 +0000 (22:32 +0000)
committerChunmei Liu <chunmei.liu@ibm.com>
Wed, 25 Jun 2025 07:04:19 +0000 (07:04 +0000)
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 <chunmei.liu@ibm.com>
src/crimson/osd/pg_backend.cc

index 42f5f82420218d97c9ad7ad875aa6d3e1eac1e03..c83ec59122f532ee741c225001524c0407f79b0e 100644 (file)
@@ -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<std::string> 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();
       }),