]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: dont log EBUSY errors in 'sync error list' 19799/head
authorCasey Bodley <cbodley@redhat.com>
Mon, 18 Dec 2017 16:42:21 +0000 (11:42 -0500)
committerNathan Cutler <ncutler@suse.com>
Fri, 5 Jan 2018 13:16:49 +0000 (14:16 +0100)
these temporary errors get retried automatically, so no admin
intervention is required. logging them only serves to waste space in
omap and obscure the more serious sync errors

Fixes: http://tracker.ceph.com/issues/22473
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit ca4510bc76ad7beed1128539aa9e424d29dd8585)

Conflicts:
    src/rgw/rgw_data_sync.cc ("multisite log tracing" feature - see
        https://github.com/ceph/ceph/pull/16492 - is not being backported to
        luminous)

src/rgw/rgw_data_sync.cc

index daaffb7cde9eb7b2c10b9eeb9490c7e9c581b588..63fcfc91ac7ce22e7af6db42318e373ba01b8b0c 100644 (file)
@@ -985,10 +985,13 @@ public:
       }
 
       if (sync_status < 0) {
-        yield call(sync_env->error_logger->log_error_cr(sync_env->conn->get_remote_id(), "data", raw_key,
-                                                        -sync_status, string("failed to sync bucket instance: ") + cpp_strerror(-sync_status)));
-        if (retcode < 0) {
-          ldout(sync_env->store->ctx(), 0) << "ERROR: failed to log sync failure: retcode=" << retcode << dendl;
+        // write actual sync failures for 'radosgw-admin sync error list'
+        if (sync_status != -EBUSY && sync_status != -EAGAIN) {
+          yield call(sync_env->error_logger->log_error_cr(sync_env->conn->get_remote_id(), "data", raw_key,
+                                                          -sync_status, string("failed to sync bucket instance: ") + cpp_strerror(-sync_status)));
+          if (retcode < 0) {
+            ldout(sync_env->store->ctx(), 0) << "ERROR: failed to log sync failure: retcode=" << retcode << dendl;
+          }
         }
         if (error_repo && !error_repo->append(raw_key)) {
           ldout(sync_env->store->ctx(), 0) << "ERROR: failed to log sync failure in error repo: retcode=" << retcode << dendl;