void MgrMonitor::update_from_paxos(bool *need_bootstrap)
{
version_t version = get_last_committed();
- if (version == map.epoch) {
- return;
- }
+ if (version != map.epoch) {
+ dout(4) << "loading version " << version << dendl;
- dout(4) << "loading version " << version << dendl;
+ bufferlist bl;
+ int err = get_version(version, bl);
+ assert(err == 0);
- bufferlist bl;
- int err = get_version(version, bl);
- assert(err == 0);
+ bufferlist::iterator p = bl.begin();
+ map.decode(p);
- bufferlist::iterator p = bl.begin();
- map.decode(p);
+ dout(4) << "active server: " << map.active_addr
+ << "(" << map.active_gid << ")" << dendl;
- dout(4) << "active server: " << map.active_addr
- << "(" << map.active_gid << ")" << dendl;
+ check_subs();
+ }
- check_subs();
+ // feed our pet MgrClient
+ mon->mgr_client.ms_dispatch(new MMgrMap(map));
}
void MgrMonitor::create_pending()