]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: 'reshard list' doesn't log ENOENT errors 45452/head
authorCasey Bodley <cbodley@redhat.com>
Mon, 11 Oct 2021 18:25:37 +0000 (14:25 -0400)
committerCory Snyder <csnyder@iland.com>
Wed, 16 Mar 2022 18:02:50 +0000 (14:02 -0400)
ENOENT errors are expected, especially in fresh clusters, before we've
written any entries to the reshard list shards. avoid logging these
non-fatal ERROR messages:

> -1 ERROR: failed to list reshard log entries, oid=reshard.0000000000 marker= (2) No such file or directory

Fixes: https://tracker.ceph.com/issues/52873
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 952c7c844acee5fe73e3f70737606b700b67238c)

Conflicts:
src/rgw/rgw_reshard.cc

Cherry-pick notes:
- Octopus using lderr vs ldpp_dout

src/rgw/rgw_reshard.cc

index b5733b240f325be8ed8ed1ee67b17f0cb2f7050a..eeac948c7784057fe62e39d6ed5444beeba49625 100644 (file)
@@ -875,17 +875,17 @@ int RGWReshard::list(int logshard_num, string& marker, uint32_t max, std::list<c
 
   int ret = cls_rgw_reshard_list(store->getRados()->reshard_pool_ctx, logshard_oid, marker, max, entries, is_truncated);
 
-  if (ret < 0) {
-    if (ret == -ENOENT) {
-      *is_truncated = false;
-      ret = 0;
-    } else {
-      lderr(store->ctx()) << "ERROR: failed to list reshard log entries, oid=" << logshard_oid << dendl;
-      if (ret == -EACCES) {
-        lderr(store->ctx()) << "access denied to pool " << store->svc()->zone->get_zone_params().reshard_pool
-                          << ". Fix the pool access permissions of your client" << dendl;
-      }
-    } 
+  if (ret == -ENOENT) {
+    // these shard objects aren't created until we actually write something to
+    // them, so treat ENOENT as a successful empty listing
+    *is_truncated = false;
+    ret = 0;
+  } else if (ret == -EACCES) {
+    lderr(store->ctx()) << "ERROR: access denied to pool " << store->svc()->zone->get_zone_params().reshard_pool
+                      << ". Fix the pool access permissions of your client" << dendl;
+  } else if (ret < 0) {
+    lderr(store->ctx()) << "ERROR: failed to list reshard log entries, oid="
+        << logshard_oid << " marker=" << marker << " " << cpp_strerror(ret) << dendl;
   }
 
   return ret;