]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: data sync checks whether the lease failed to renew 24857/head
authorCasey Bodley <cbodley@redhat.com>
Mon, 13 Aug 2018 19:47:29 +0000 (15:47 -0400)
committerJonathan Brielmaier <jbrielmaier@suse.de>
Wed, 31 Oct 2018 10:09:03 +0000 (11:09 +0100)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry pick from commit 3754871)
Signed-off-by: Jonathan Brielmaier <jbrielmaier@suse.de>
Conflicts:
src/rgw/rgw_data_sync.cc: trivial

src/rgw/rgw_data_sync.cc

index 5ec99df339b11c79d131b7d650c364ae738393d1..dca9ea9196e1b3f71eb3fbdd8761d75d4ea6db55 100644 (file)
@@ -1252,6 +1252,11 @@ public:
       set_marker_tracker(new RGWDataSyncShardMarkerTrack(sync_env, status_oid, sync_marker));
       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) {
           ldout(sync_env->cct, 0) << "ERROR: " << __func__ << "(): RGWRadosGetOmapKeysCR() returned ret=" << retcode << dendl;
@@ -1334,6 +1339,11 @@ public:
       logger.log("inc sync");
       set_marker_tracker(new RGWDataSyncShardMarkerTrack(sync_env, status_oid, sync_marker));
       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);