]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: set init_check_compat when bucket sync status doesn't exist 51014/head
authorCasey Bodley <cbodley@redhat.com>
Wed, 29 Mar 2023 14:57:04 +0000 (10:57 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 11 Apr 2023 13:13:56 +0000 (09:13 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 00f623e28960300babae52ed78e5a27b3b235c64)

src/rgw/driver/rados/rgw_data_sync.cc

index 0e9d511342b27d66a84acf76d21789de03d869a5..1e8c916cb3e452b555c60fd1c8b1c9935e2595c5 100644 (file)
@@ -5692,6 +5692,12 @@ int RGWSyncBucketCR::operate(const DoutPrefixProvider *dpp)
     yield call(new ReadCR(dpp, env->driver,
                           status_obj, &bucket_status, false, &objv));
     if (retcode == -ENOENT) {
+      // if the full sync status object didn't exist yet, run the backward
+      // compatability logic in InitBucketFullSyncStatusCR below. if it did
+      // exist, a `bucket sync init` probably requested its re-initialization,
+      // and shouldn't try to resume incremental sync
+      init_check_compat = true;
+
       // use exclusive create to set state=Init
       objv.generate_new_write_ver(cct);
       yield call(new WriteCR(dpp, env->driver, status_obj, bucket_status, &objv, true));