From 405994628942b73515e4eaf2ba181c38bbeae989 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 24 Sep 2019 12:05:24 -0500 Subject: [PATCH] osd/PeeringState: skip wait state if osd set is empty If there are no down OSDs from prior intervals, then the normal peering process will end up contacting all of the prior OSDs and ensuring that their prior interval is terminated during peering. Signed-off-by: Sage Weil --- src/osd/PeeringState.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index dd0ba2cd1e4..19be27bea48 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -6255,6 +6255,11 @@ PeeringState::GetInfo::GetInfo(my_context ctx) prior_set = ps->build_prior(); ps->prior_readable_down_osds = prior_set.down; + if (ps->prior_readable_down_osds.empty()) { + psdout(10) << " no prior_set down osds, clearing prior_readable_until_ub" + << dendl; + ps->clear_prior_readable_until_ub(); + } ps->reset_min_peer_features(); get_infos(); -- 2.39.5