]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MgrStatMonitor: ensure only one copy of initial service map 29249/head
authorSage Weil <sage@redhat.com>
Thu, 21 Mar 2019 16:58:29 +0000 (11:58 -0500)
committerNathan Cutler <ncutler@suse.com>
Wed, 24 Jul 2019 10:58:49 +0000 (12:58 +0200)
It's possible for create_pending to be called multiple times.

Fixes: http://tracker.ceph.com/issues/38839
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 204a8deacd2068989bd52eb130f4aac434b45f35)

src/mon/MgrStatMonitor.cc

index 9db8ac4e8699739138d9aceb26f13ce76e4052cb..6ec5c436280eff3d886373af9f8dc9a443a6322f 100644 (file)
@@ -34,6 +34,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);
 }
 
@@ -54,7 +55,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();