diff --git a/src/mon/MonmapMonitor.cc b/src/mon/MonmapMonitor.cc index f1bc3681031..2ca54ca8ab7 100644 --- a/src/mon/MonmapMonitor.cc +++ b/src/mon/MonmapMonitor.cc @@ -55,6 +55,8 @@ bool MonmapMonitor::update_from_paxos() dout(10) << "update_from_paxos paxosv " << paxosv << ", my v " << mon->monmap->epoch << dendl; + bool need_restart = paxosv != mon->monmap->get_epoch(); + if (paxosv > 0 && (mon->monmap->get_epoch() == 0 || paxos->get_latest_version() != paxosv)) { bufferlist latest; @@ -93,7 +95,8 @@ bool MonmapMonitor::update_from_paxos() mon->rank = rank; } - mon->bootstrap(); + if (need_restart) + mon->bootstrap(); return true; }