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
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");