From eac62f86baac46a7b008b814a31588b07bcc45ad Mon Sep 17 00:00:00 2001 From: Gu Zhongyan Date: Wed, 14 Mar 2018 15:08:05 +0800 Subject: [PATCH] mgr: fix MSG_MGR_MAP handling ceph config show mgr.x doesn't work root cause is mgr daemon's mgrc has no chance to process MSG_MGR_MAP in the mgr daemon's ms_dispatch. fix is let this message pass through for mgrc Signed-off-by: Gu Zhongyan Signed-off-by: yupeng chen chenyupeng-it@360.cn (cherry picked from commit f04190ed11700fd2c701799d2c867cf299a5f1b2) Conflicts: src/mgr/MgrStandby.cc: resolved in ms_dispatch --- src/mgr/MgrStandby.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mgr/MgrStandby.cc b/src/mgr/MgrStandby.cc index 171add02f876..2317a4fc76a0 100644 --- a/src/mgr/MgrStandby.cc +++ b/src/mgr/MgrStandby.cc @@ -369,6 +369,7 @@ void MgrStandby::handle_mgr_map(MMgrMap* mmap) bool MgrStandby::ms_dispatch(Message *m) { Mutex::Locker l(lock); + bool handled = false; dout(4) << state_str() << " " << *m << dendl; if (m->get_type() == MSG_MGR_MAP) { @@ -377,12 +378,17 @@ bool MgrStandby::ms_dispatch(Message *m) } else if (active_mgr) { auto am = active_mgr; lock.Unlock(); - bool handled = am->ms_dispatch(m); + handled = am->ms_dispatch(m); lock.Lock(); return handled; } else { return false; } + if (m->get_type() == MSG_MGR_MAP) { + // let this pass through for mgrc + handled = false; + } + return handled; } -- 2.47.3