From 03195994850ce83b2fa990deda793afedd41f454 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 21 Mar 2019 11:58:29 -0500 Subject: [PATCH] mon/MgrStatMonitor: ensure only one copy of initial service map It's possible for create_pending to be called multiple times. Fixes: http://tracker.ceph.com/issues/38839 Signed-off-by: Sage Weil (cherry picked from commit 204a8deacd2068989bd52eb130f4aac434b45f35) Conflicts: src/mon/MgrStatMonitor.cc : Resolved in create_initial --- src/mon/MgrStatMonitor.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mon/MgrStatMonitor.cc b/src/mon/MgrStatMonitor.cc index b79884b7d3ac..0773fd114973 100644 --- a/src/mon/MgrStatMonitor.cc +++ b/src/mon/MgrStatMonitor.cc @@ -75,6 +75,7 @@ void MgrStatMonitor::create_initial() dout(10) << __func__ << dendl; version = 0; service_map.epoch = 1; + pending_service_map_bl.clear(); ::encode(service_map, pending_service_map_bl, CEPH_FEATURES_ALL); } @@ -95,7 +96,8 @@ void MgrStatMonitor::update_from_paxos(bool *need_bootstrap) << " service_map e" << service_map.epoch << dendl; } catch (buffer::error& e) { - derr << "failed to decode mgrstat state; luminous dev version?" << dendl; + derr << "failed to decode mgrstat state; luminous dev version? " + << e.what() << dendl; } } check_subs(); -- 2.47.3