From: Casey Bodley Date: Mon, 8 Aug 2022 20:43:30 +0000 (-0400) Subject: rgw: DataSyncShardCR stops/drains its lease_cr on errors X-Git-Tag: v18.0.0~244^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b4b4e53000858f98d28ef6f0773d71d74e4df939;p=ceph.git rgw: DataSyncShardCR stops/drains its lease_cr on errors moves the lease-related error handling out of DataFull/DataInc and into DataSyncShardCR Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index 6b2d0d2cec480..aa786a925e61c 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -1684,7 +1684,6 @@ public: entry_timestamp = sync_marker.timestamp; // time when full sync started do { if (!lease_cr->is_locked()) { - lease_cr->go_down(); drain_all(); return set_cr_error(-ECANCELED); } @@ -1694,7 +1693,6 @@ public: sync_marker.marker, OMAP_GET_MAX_ENTRIES, omapvals)); if (retcode < 0) { - lease_cr->go_down(); drain_all(); return set_cr_error(retcode); } @@ -1745,8 +1743,6 @@ public: rgw_raw_obj(pool, status_oid), sync_marker)); if (retcode < 0) { tn->log(0, SSTR("ERROR: failed to set sync marker: retcode=" << retcode)); - lease_cr->go_down(); - drain_all(); return set_cr_error(retcode); } @@ -1820,7 +1816,6 @@ public: marker_tracker.emplace(sc, status_oid, sync_marker, tn); do { if (!lease_cr->is_locked()) { - lease_cr->go_down(); drain_all(); return set_cr_error(-ECANCELED); } @@ -1910,7 +1905,6 @@ public: if (retcode < 0 && retcode != -ENOENT) { tn->log(0, SSTR("ERROR: failed to read remote data log info: ret=" << retcode)); - lease_cr->go_down(); drain_all(); return set_cr_error(retcode); } @@ -2047,6 +2041,8 @@ public: if (retcode != -EBUSY) { tn->log(10, SSTR("full sync failed (retcode=" << retcode << ")")); } + lease_cr->go_down(); + drain_all(); return set_cr_error(retcode); } } else if (sync_marker.state == rgw_data_sync_marker::IncrementalSync) { @@ -2061,9 +2057,13 @@ public: tn->log(10, SSTR("incremental sync failed (retcode=" << retcode << ")")); } + lease_cr->go_down(); + drain_all(); return set_cr_error(retcode); } } else { + lease_cr->go_down(); + drain_all(); return set_cr_error(-EIO); } }