]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/multisite: remove the retry mechanism
authorYuval Lifshitz <ylifshit@redhat.com>
Thu, 27 May 2021 15:54:31 +0000 (18:54 +0300)
committerCasey Bodley <cbodley@redhat.com>
Fri, 27 May 2022 19:47:32 +0000 (15:47 -0400)
when writign the sync status object

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
src/rgw/rgw_data_sync.cc

index 48b76f2a5c55cbefcbde4acf99a9d6607aeb7d9d..6a9fd74069db456574ed59a8f0332d0f9e0eaee9 100644 (file)
@@ -2993,10 +2993,6 @@ class InitBucketShardStatusCR : public RGWCoroutine {
   const uint64_t latest_gen;
   const BucketIndexShardsManager& marker_mgr;
 
-  int tries = 10; // retry on racing writes
-  bool exclusive = true; // first try is exclusive
-  using ReadCR = RGWReadBucketPipeSyncStatusCoroutine;
-  using InitCR = RGWInitBucketShardSyncStatusCoroutine;
  public:
   InitBucketShardStatusCR(RGWDataSyncCtx* sc,
                          const rgw_bucket_sync_pair_info& pair,
@@ -3006,32 +3002,14 @@ class InitBucketShardStatusCR : public RGWCoroutine {
   {}
   int operate(const DoutPrefixProvider *dpp) {
     reenter(this) {
-      // try exclusive create with empty status
+      // non exclusive create with empty status
       objv.generate_new_write_ver(cct);
-      yield call(new InitCR(sc, pair, status, latest_gen, marker_mgr, objv, exclusive));
-      if (retcode >= 0) {
-        return set_cr_done();
-      } else if (retcode != -EEXIST) {
+      yield call(new RGWInitBucketShardSyncStatusCoroutine(sc, pair, status, latest_gen, marker_mgr, objv, false));
+      if (retcode < 0) {
+        assert(retcode != -EEXIST && retcode != -ECANCELED);
         return set_cr_error(retcode);
       }
-
-      exclusive = false;
-      // retry loop to reinitialize
-      while (--tries) {
-        objv.clear();
-        // read current status and objv
-        yield call(new ReadCR(sc, pair, &status, &objv, latest_gen));
-        if (retcode < 0) {
-          return set_cr_error(retcode);
-        }
-        yield call(new InitCR(sc, pair, status, latest_gen, marker_mgr, objv, exclusive));
-        if (retcode >= 0) {
-          return set_cr_done();
-        } else if (retcode != -ECANCELED) {
-          return set_cr_error(retcode);
-        }
-      }
-      return set_cr_error(retcode);
+      return set_cr_done();
     }
     return 0;
   }