]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: improve data sync restart after failure 30175/head
authorTianshan Qu <tianshan@xsky.com>
Thu, 5 Sep 2019 10:02:01 +0000 (18:02 +0800)
committerTianshan Qu <tianshan@xsky.com>
Thu, 5 Sep 2019 10:02:01 +0000 (18:02 +0800)
RGWDataSyncShardCR will be reinited by RGWDataSyncShardControlCR after
error return, the sync_marker is old one since it's read in
RGWDataSyncShardControlCR's start process, so keep it updated to prevent
redo some sync process.

Signed-off-by: Tianshan Qu <tianshan@xsky.com>
src/rgw/rgw_data_sync.cc

index 4c81ffe7571d675918152e298189222971fa2aed..020e666f99abad96aa1663dea28739d80fab3463 100644 (file)
@@ -1111,7 +1111,7 @@ class RGWDataSyncShardCR : public RGWCoroutine {
   rgw_pool pool;
 
   uint32_t shard_id;
-  rgw_data_sync_marker sync_marker;
+  rgw_data_sync_marker& sync_marker;
 
   RGWRadosGetOmapKeysCR::ResultPtr omapkeys;
   std::set<std::string> entries;
@@ -1168,7 +1168,7 @@ class RGWDataSyncShardCR : public RGWCoroutine {
 public:
   RGWDataSyncShardCR(RGWDataSyncEnv *_sync_env,
                      rgw_pool& _pool,
-                    uint32_t _shard_id, const rgw_data_sync_marker& _marker,
+                     uint32_t _shard_id, rgw_data_sync_marker& _marker,
                      RGWSyncTraceNodeRef& _tn,
                      bool *_reset_backoff) : RGWCoroutine(_sync_env->cct),
                                                       sync_env(_sync_env),