Saw an OSD that was up in the map, but the address didn't match. Caused
all kinds of strange behavior. I'm not sure what I had in mind when the
original test only checked for down AND same address before moving to boot
state, since having the wrong address is clearly bad news.
Signed-off-by: Sage Weil <sage@newdream.net>
if (osdmap->get_epoch() > 0 &&
state != STATE_BOOTING &&
(!osdmap->exists(whoami) ||
- (!osdmap->is_up(whoami) && osdmap->get_addr(whoami) == client_messenger->get_myaddr()))) {
- dout(0) << "map says i am down. switching to boot state." << dendl;
+ !osdmap->is_up(whoami) ||
+ osdmap->get_addr(whoami) != client_messenger->get_myaddr())) {
+ dout(0) << "map says i am down or have a different address. switching to boot state." << dendl;
//shutdown();
stringstream ss;