From 4ff72f1532681d414e8fbdeea1d7ef522c9cb93a Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 13 Aug 2018 15:47:29 -0400 Subject: [PATCH] rgw: data sync checks whether the lease failed to renew Signed-off-by: Casey Bodley (cherry pick from commit 3754871) Signed-off-by: Jonathan Brielmaier Conflicts: src/rgw/rgw_data_sync.cc: trivial --- src/rgw/rgw_data_sync.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index 5ec99df339b11..dca9ea9196e1b 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -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); -- 2.39.5