bool AuthMonitor::update_from_paxos()
{
- dout(10) << "AuthMonitor::update_from_paxos()" << dendl;
+ dout(10) << "update_from_paxos()" << dendl;
version_t paxosv = paxos->get_version();
version_t keys_ver = mon->key_server.get_ver();
if (paxosv == keys_ver)
return true;
assert(paxosv >= keys_ver);
- if (keys_ver == 0 && paxosv > 0) {
- // startup: just load latest full map
+ if (keys_ver != paxos->get_latest_version()) {
bufferlist latest;
version_t v = paxos->get_latest(latest);
- if (v) {
- dout(7) << "update_from_paxos startup: loading summary e" << v << dendl;
- bufferlist::iterator p = latest.begin();
- __u8 v;
- ::decode(v, p);
- ::decode(max_global_id, p);
- ::decode(mon->key_server, p);
- }
+ dout(7) << "update_from_paxos loading summary e" << v << dendl;
+ bufferlist::iterator p = latest.begin();
+ __u8 struct_v;
+ ::decode(struct_v, p);
+ ::decode(max_global_id, p);
+ ::decode(mon->key_server, p);
}
// walk through incrementals
bufferlist blogerr;
bufferlist blogsec;
- if (summary.version == 0 && paxosv > 0) {
- // startup: just load latest full map
+ if (summary.version != paxos->get_latest_version()) {
bufferlist latest;
version_t v = paxos->get_latest(latest);
- if (v) {
- dout(7) << "update_from_paxos startup: loading summary e" << v << dendl;
- bufferlist::iterator p = latest.begin();
- ::decode(summary, p);
- }
+ dout(7) << "update_from_paxos loading summary e" << v << dendl;
+ bufferlist::iterator p = latest.begin();
+ ::decode(summary, p);
}
// walk through incrementals
dout(15) << "update_from_paxos paxos e " << paxosv
<< ", my e " << osdmap.epoch << dendl;
- if (osdmap.epoch == 0 && paxosv > 0) {
- // startup: just load latest full map
+ if (osdmap.epoch != paxos->get_latest_version()) {
bufferlist latest;
version_t v = paxos->get_latest(latest);
- if (v) {
- dout(7) << "update_from_paxos startup: loading latest full map e" << v << dendl;
- osdmap.decode(latest);
- }
+ dout(7) << "update_from_paxos loading latest full map e" << v << dendl;
+ osdmap.decode(latest);
}
// walk through incrementals
return true;
assert(paxosv >= pg_map.version);
- if (pg_map.version == 0 && paxosv > 0) {
- // starting up: load latest
+ if (pg_map.version != paxos->get_latest_version()) {
bufferlist latest;
version_t v = paxos->get_latest(latest);
- if (v) {
- dout(7) << "update_from_paxos startup: got latest latest full pgmap v" << v << dendl;
- try {
- PGMap tmp_pg_map;
- bufferlist::iterator p = latest.begin();
- tmp_pg_map.decode(p);
- pg_map = tmp_pg_map;
- }
- catch (const std::exception &e) {
- dout(0) << "update_from_paxos: error parsing update: "
- << e.what() << dendl;
- return false;
- }
+ dout(7) << "update_from_paxos loading latest full pgmap v" << v << dendl;
+ try {
+ PGMap tmp_pg_map;
+ bufferlist::iterator p = latest.begin();
+ tmp_pg_map.decode(p);
+ pg_map = tmp_pg_map;
+ }
+ catch (const std::exception &e) {
+ dout(0) << "update_from_paxos: error parsing update: "
+ << e.what() << dendl;
+ return false;
}
}