From: Yuval Lifshitz Date: Thu, 27 May 2021 15:54:31 +0000 (+0300) Subject: rgw/multisite: remove the retry mechanism X-Git-Tag: v18.0.0~787^2~88 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=072220eecdc5b033847294a4fd01c36e580562f6;p=ceph.git rgw/multisite: remove the retry mechanism when writign the sync status object Signed-off-by: Yuval Lifshitz --- diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index 48b76f2a5c55..6a9fd74069db 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -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; }