From a786d2543cddcd1e4fbb7a574b76c3a30ddbf512 Mon Sep 17 00:00:00 2001 From: Wei Qiaomiao Date: Sat, 15 Aug 2020 01:37:56 +0800 Subject: [PATCH] mds: standy-replay mds remained in the "resolve" state after restart the active mds MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In multimds and standy-replay enabled Ceph cluster,after reduce a filesystem mds num and restart an active mds, its standy-replay mds didn't enter into active state and remained in the "resolve" state. Fixes: https://tracker.ceph.com/issues/46976 Signed-off-by: Wei Qiaomiao --- src/mds/MDSRank.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 9a0e2a5390c..36471e86c16 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -1715,8 +1715,6 @@ void MDSRank::replay_start() if (is_standby_replay()) standby_replaying = true; - calc_recovery_set(); - // Check if we need to wait for a newer OSD map before starting bool const ready = objecter->with_osdmap( [this](const OSDMap& o) { @@ -1892,6 +1890,8 @@ void MDSRank::resolve_start() reopen_log(); + calc_recovery_set(); + mdcache->resolve_start(new C_MDS_VoidFn(this, &MDSRank::resolve_done)); finish_contexts(g_ceph_context, waiting_for_resolve); } -- 2.39.5