The rank can change either because we probe and get a new monmap, or
because we get one via paxos. Move the checks to bootstrap() to catch
both cases.
Signed-off-by: Sage Weil <sage@newdream.net>
cancel_probe_timeout();
// note my rank
- rank = monmap->get_rank(name);
+ int newrank = monmap->get_rank(name);
+ if (newrank < 0 && rank >= 0) {
+ dout(0) << " removed from monmap, suicide." << dendl;
+ exit(0);
+ }
+ if (newrank != rank) {
+ dout(0) << " my rank is now " << newrank << " (was " << rank << ")" << dendl;
+ messenger->set_myname(entity_name_t::MON(newrank));
+ rank = newrank;
+ }
// reset
state = STATE_PROBING;
mon->store->erase_ss("mkfs", "monmap");
}
- int rank = mon->monmap->get_rank(mon->name);
- if (rank < 0 && mon->rank >= 0) {
- dout(0) << " removed from monmap, suicide." << dendl;
- exit(0);
- }
- if (rank != mon->rank) {
- dout(0) << " my rank is now " << rank << " (was " << mon->rank << ")" << dendl;
- mon->messenger->set_myname(entity_name_t::MON(rank));
- mon->rank = rank;
- }
-
if (need_restart)
mon->bootstrap();
return true;