]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: bucket sync allows OP_ADD on versioned objects
authorCasey Bodley <cbodley@redhat.com>
Thu, 31 May 2018 18:13:40 +0000 (14:13 -0400)
committerNathan Cutler <ncutler@suse.com>
Wed, 12 Sep 2018 11:28:10 +0000 (13:28 +0200)
operations like PutACL that only mutate object metadata do not
generate a link_olh entry, so they cannot be skipped. their bilog
entries don't have a versioned_epoch, so we skip the call to
set_olh() by passing an empty value to fetch_remote_obj()

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

Conflicts:
src/rgw/rgw_data_sync.cc
- trivial resolution

src/rgw/rgw_data_sync.cc

index a37a0552150f22919045eba5b0fe15cd5a2c93b8..059785c8d06c10cf1ef416cddac3dc9753a77314 100644 (file)
@@ -2483,12 +2483,6 @@ public:
             retcode = -EIO;
           } else if (op == CLS_RGW_OP_ADD ||
                      op == CLS_RGW_OP_LINK_OLH) {
-            if (op == CLS_RGW_OP_ADD && !key.instance.empty() && key.instance != "null") {
-              set_status("skipping entry");
-              ldout(sync_env->cct, 10) << "bucket skipping sync obj: " << sync_env->source_zone << "/" << bucket_info->bucket << "/" << key << "[" << versioned_epoch << "]: versioned object will be synced on link_olh" << dendl;
-              goto done;
-
-            }
             set_status("syncing obj");
             ldout(sync_env->cct, 5) << "bucket sync: sync obj: " << sync_env->source_zone << "/" << bucket_info->bucket << "/" << key << "[" << versioned_epoch << "]" << dendl;
             logger.log("fetch");