]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/pg_recovery: avoid repeatedly updating the peering missing 59615/head
authorXuehan Xu <xuxuehan@qianxin.com>
Mon, 11 Nov 2024 08:19:40 +0000 (16:19 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Fri, 7 Feb 2025 03:24:57 +0000 (11:24 +0800)
set for the same object

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/osd/pg_recovery.cc

index 5c1bd2b09ccc848f6fd7647eba06dbf47aab104a..0a98c561b2d97cf87e8d77b5d4a14d3cd48783f6 100644 (file)
@@ -531,10 +531,10 @@ void PGRecovery::enqueue_push(
 {
   logger().info("{}: obj={} v={} peers={}", __func__, obj, v, peers);
   auto &peering_state = pg->get_peering_state();
-  peering_state.prepare_backfill_for_missing(obj, v, peers);
   auto [recovering, added] = pg->get_recovery_backend()->add_recovering(obj);
   if (!added)
     return;
+  peering_state.prepare_backfill_for_missing(obj, v, peers);
   std::ignore = pg->get_recovery_backend()->recover_object(obj, v).\
   handle_exception_interruptible([] (auto) {
     ceph_abort_msg("got exception on backfill's push");