]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: DataIncSyncShardCR completes with set_cr_done()
authorCasey Bodley <cbodley@redhat.com>
Mon, 8 Aug 2022 20:51:51 +0000 (16:51 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 9 Aug 2022 19:29:21 +0000 (15:29 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_data_sync.cc

index 60bdddca82dac4ed3a57dc0e6e01111e0a8b00f7..6b2d0d2cec480c64e58719f3ae2e390aa5fe8e51 100644 (file)
@@ -1736,28 +1736,25 @@ public:
 
       tn->unset_flag(RGW_SNS_FLAG_ACTIVE);
 
-      yield {
-        /* update marker to reflect we're done with full sync */
-        sync_marker.state = rgw_data_sync_marker::IncrementalSync;
-        sync_marker.marker = sync_marker.next_step_marker;
-        sync_marker.next_step_marker.clear();
-        call(new RGWSimpleRadosWriteCR<rgw_data_sync_marker>(
-              sc->env->dpp,sc->env->async_rados, sc->env->svc->sysobj,
-              rgw_raw_obj(pool, status_oid), sync_marker));
-      }
+      /* update marker to reflect we're done with full sync */
+      sync_marker.state = rgw_data_sync_marker::IncrementalSync;
+      sync_marker.marker = sync_marker.next_step_marker;
+      sync_marker.next_step_marker.clear();
+      yield call(new RGWSimpleRadosWriteCR<rgw_data_sync_marker>(
+             sc->env->dpp,sc->env->async_rados, sc->env->svc->sysobj,
+             rgw_raw_obj(pool, status_oid), sync_marker));
       if (retcode < 0) {
         tn->log(0, SSTR("ERROR: failed to set sync marker: retcode=" << retcode));
         lease_cr->go_down();
         drain_all();
         return set_cr_error(retcode);
       }
-      // clean up full sync index
-      yield {
-        const auto& pool = sc->env->svc->zone->get_zone_params().log_pool;
-        auto oid = full_data_sync_index_shard_oid(sc->source_zone.id, shard_id);
-        call(new RGWRadosRemoveCR(sc->env->store, {pool, oid}));
-      }
-      // keep lease and transition to incremental_sync()
+
+      // clean up full sync index, ignoring errors
+      yield call(new RGWRadosRemoveCR(sc->env->store, {pool, oid}));
+
+      // transition to incremental sync
+      return set_cr_done();
     }
     return 0;
   }