From: Shraddha Agrawal Date: Fri, 10 Apr 2026 09:39:41 +0000 (+0530) Subject: src/osd: add more logs to the AllReplicasRecovered handler X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F68306%2Fhead;p=ceph.git src/osd: add more logs to the AllReplicasRecovered handler This PR adds more logs around AllReplicasRecovered Handler to verify the race between this and defer recovery. Signed-off-by: Shraddha Agrawal --- diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index a225e6218d3b..0ff4abc8518f 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -688,7 +688,7 @@ void PGRecovery::request_backfill() void PGRecovery::all_replicas_recovered() { LOG_PREFIX(PGRecovery::all_replicas_recovered); - DEBUGDPP("", *pg->get_dpp()); + DEBUGDPP("posting AllReplicasRecovered event", *pg->get_dpp()); start_peering_event_operation_listener(PeeringState::AllReplicasRecovered()); } diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 999c86f62a71..bcd56504943e 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -6361,6 +6361,7 @@ boost::statechart::result PeeringState::Recovering::react(const AllReplicasRecovered &evt) { DECLARE_LOCALS; + psdout(10) << "handling AllReplicasRecovered" << dendl; ps->state_clear(PG_STATE_FORCED_RECOVERY); release_reservations(); pl->cancel_local_background_io_reservation(); @@ -6409,6 +6410,8 @@ PeeringState::Recovering::react(const DeferRecovery &evt) ps->get_osdmap_epoch(), DoRecovery()), evt.delay); + psdout(10) << "DeferRecovery: transitioning to NotRecovering, " + << "any pending AllReplicasRecovered will be lost" << dendl; return transit(); } @@ -6444,6 +6447,8 @@ PeeringState::Recovered::Recovered(my_context ctx) DECLARE_LOCALS; + psdout(10) << "Recovered::Recovered: entering Recovered state" << dendl; + ceph_assert(!ps->needs_recovery()); // if we finished backfill, all acting are active; recheck if @@ -6467,6 +6472,8 @@ PeeringState::Recovered::Recovered(my_context ctx) if (context< Active >().all_replicas_activated && ps->async_recovery_targets.empty()) post_event(GoClean()); + + psdout(10) << "Recovered::Recovered: exiting Recovered constructor" << dendl; } void PeeringState::Recovered::exit()