]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd/replicated_recovery_backend: prepare_pull to use pg_info
authorMatan Breizman <mbreizma@redhat.com>
Mon, 1 Apr 2024 08:58:48 +0000 (08:58 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 16 May 2024 11:43:58 +0000 (14:43 +0300)
Don't use peer's info on prepare_pull.

Fixes: https://tracker.ceph.com/issues/65200
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 7586abfad239d433049fb714d6fb8f2530a1b9c6)

src/crimson/osd/replicated_recovery_backend.cc
src/crimson/osd/replicated_recovery_backend.h

index a62cb793272d5fc836b0b2c2c8311d23ef192c79..14e54716953362b9bc0d54fab908ada2dcbd75e2 100644 (file)
@@ -431,11 +431,9 @@ void ReplicatedRecoveryBackend::prepare_pull(
   const auto missing_iter = local_missing.get_items().find(soid);
   auto m = pg.get_missing_loc_shards();
   pg_shard_t fromshard = *(m[soid].begin());
-  const auto& last_backfill =
-    pg.get_peering_state().get_peer_info(fromshard).last_backfill;
 
   pull_op.recovery_info =
-    set_recovery_info(soid, head_obc->ssc, last_backfill);
+    set_recovery_info(soid, head_obc->ssc);
   pull_op.soid = soid;
   pull_op.recovery_progress.data_complete = false;
   pull_op.recovery_progress.omap_complete =
@@ -452,8 +450,7 @@ void ReplicatedRecoveryBackend::prepare_pull(
 
 ObjectRecoveryInfo ReplicatedRecoveryBackend::set_recovery_info(
   const hobject_t& soid,
-  const crimson::osd::SnapSetContextRef ssc,
-  const hobject_t& last_backfill)
+  const crimson::osd::SnapSetContextRef ssc)
 {
   pg_missing_tracker_t local_missing = pg.get_local_missing();
   const auto missing_iter = local_missing.get_items().find(soid);
@@ -463,7 +460,7 @@ ObjectRecoveryInfo ReplicatedRecoveryBackend::set_recovery_info(
     assert(ssc);
     recovery_info.ss = ssc->snapset;
     auto subsets = crimson::osd::calc_clone_subsets(
-      ssc->snapset, soid, local_missing, last_backfill);
+      ssc->snapset, soid, local_missing, pg.get_info().last_backfill);
     crimson::osd::set_subsets(subsets, recovery_info);
     logger().debug("{}: pulling {}", __func__, recovery_info);
     ceph_assert(ssc->snapset.clone_size.count(soid.snap));
index aac4531ee95ab39583e3a3610d29f3246324c940..adf7188c891856f97944e9f850a2367f12acae52 100644 (file)
@@ -67,8 +67,7 @@ protected:
     eversion_t need);
   ObjectRecoveryInfo set_recovery_info(
     const hobject_t& soid,
-    const crimson::osd::SnapSetContextRef ssc,
-    const hobject_t& last_backfill);
+    const crimson::osd::SnapSetContextRef ssc);
   std::vector<pg_shard_t> get_shards_to_push(
     const hobject_t& soid) const;
   interruptible_future<PushOp> build_push_op(