]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: elector dispatch do not alloc memory on monmap 8350/head
authorsongbaisen <song.baisen@zte.com.cn>
Wed, 30 Mar 2016 03:48:09 +0000 (11:48 +0800)
committersongbaisen <song.baisen@zte.com.cn>
Wed, 4 May 2016 01:51:27 +0000 (09:51 +0800)
Signed-off-by: song baisen song.baisen@zte.com.cn
src/mon/Elector.cc

index 9e011e34fdd702463e5ac220a9422df2ef1e9978..2ad1161e73bad9e3c002304ec1a6e75c33a570cc 100644 (file)
@@ -430,10 +430,10 @@ void Elector::dispatch(MonOpRequestRef op)
        return;
       }
 
-      MonMap *peermap = new MonMap;
-      peermap->decode(em->monmap_bl);
-      if (peermap->epoch > mon->monmap->epoch) {
-       dout(0) << em->get_source_inst() << " has newer monmap epoch " << peermap->epoch
+      MonMap peermap;
+      peermap.decode(em->monmap_bl);
+      if (peermap.epoch > mon->monmap->epoch) {
+       dout(0) << em->get_source_inst() << " has newer monmap epoch " << peermap.epoch
                << " > my epoch " << mon->monmap->epoch 
                << ", taking it"
                << dendl;
@@ -445,15 +445,13 @@ void Elector::dispatch(MonOpRequestRef op)
        //mon->monmon()->paxos->stash_latest(mon->monmap->epoch, em->monmap_bl);
        cancel_timer();
        mon->bootstrap();
-       delete peermap;
        return;
       }
-      if (peermap->epoch < mon->monmap->epoch) {
-       dout(0) << em->get_source_inst() << " has older monmap epoch " << peermap->epoch
+      if (peermap.epoch < mon->monmap->epoch) {
+       dout(0) << em->get_source_inst() << " has older monmap epoch " << peermap.epoch
                << " < my epoch " << mon->monmap->epoch 
                << dendl;
       } 
-      delete peermap;
 
       switch (em->op) {
       case MMonElection::OP_PROPOSE: