]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: data sync checks whether the lease failed to renew 24536/head
authorCasey Bodley <cbodley@redhat.com>
Mon, 13 Aug 2018 19:47:29 +0000 (15:47 -0400)
committerPrashant D <pdhange@redhat.com>
Wed, 10 Oct 2018 21:57:44 +0000 (17:57 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 3754871e65830e772f9b902fa162853716eeb78d)

 Conflicts:
src/rgw/rgw_data_sync.cc : Resolved in full_sync

src/rgw/rgw_data_sync.cc

index bc81bf5469051601e24489a562db0a4906a5a4a3..2f63e4735fc9781c6c150e11df834ccdb84cd4e1 100644 (file)
@@ -1324,6 +1324,11 @@ public:
       set_marker_tracker(new RGWDataSyncShardMarkerTrack(sync_env, status_oid, sync_marker, tn));
       total_entries = sync_marker.pos;
       do {
+        if (!lease_cr->is_locked()) {
+          stop_spawned_services();
+          drain_all();
+          return set_cr_error(-ECANCELED);
+        }
         yield call(new RGWRadosGetOmapKeysCR(sync_env->store, rgw_raw_obj(pool, oid), sync_marker.marker, &entries, max_entries));
         if (retcode < 0) {
           tn->log(0, SSTR("ERROR: RGWRadosGetOmapKeysCR() returned ret=" << retcode));
@@ -1412,6 +1417,11 @@ public:
       logger.log("inc sync");
       set_marker_tracker(new RGWDataSyncShardMarkerTrack(sync_env, status_oid, sync_marker, tn));
       do {
+        if (!lease_cr->is_locked()) {
+          stop_spawned_services();
+          drain_all();
+          return set_cr_error(-ECANCELED);
+        }
         current_modified.clear();
         inc_lock.Lock();
         current_modified.swap(modified_shards);