void dump(Formatter *f) const;
static void generate_test_instances(list<entity_addrvec_t*>& ls);
- bool probably_equals(const entity_addrvec_t& o) const {
- if (o.v.size() != v.size()) {
- return false;
+ bool legacy_equals(const entity_addrvec_t& o) const {
+ if (v == o.v) {
+ return true;
+ }
+ if (v.size() == 1 &&
+ front().is_legacy() &&
+ front() == o.legacy_addr()) {
+ return true;
}
+ return false;
+ }
+
+ bool probably_equals(const entity_addrvec_t& o) const {
for (unsigned i = 0; i < v.size(); ++i) {
if (!v[i].probably_equals(o.v[i])) {
return false;
epoch_t _bind_epoch = service.get_bind_epoch();
if (osdmap->is_up(whoami) &&
- osdmap->get_addrs(whoami) == client_messenger->get_myaddrs() &&
+ osdmap->get_addrs(whoami).legacy_equals(
+ client_messenger->get_myaddrs()) &&
_bind_epoch < osdmap->get_up_from(whoami)) {
if (is_booting()) {
do_shutdown = true; // don't call shutdown() while we have
// everything paused
} else if (!osdmap->is_up(whoami) ||
- !osdmap->get_addrs(whoami).probably_equals(
+ !osdmap->get_addrs(whoami).legacy_equals(
client_messenger->get_myaddrs()) ||
- !osdmap->get_cluster_addrs(whoami).probably_equals(
+ !osdmap->get_cluster_addrs(whoami).legacy_equals(
cluster_messenger->get_myaddrs()) ||
- !osdmap->get_hb_back_addrs(whoami).probably_equals(
+ !osdmap->get_hb_back_addrs(whoami).legacy_equals(
hb_back_server_messenger->get_myaddrs()) ||
- !osdmap->get_hb_front_addrs(whoami).probably_equals(
+ !osdmap->get_hb_front_addrs(whoami).legacy_equals(
hb_front_server_messenger->get_myaddrs())) {
if (!osdmap->is_up(whoami)) {
if (service.is_preparing_to_stop() || service.is_stopping()) {
<< " wrongly marked me down at e"
<< osdmap->get_down_at(whoami);
}
- } else if (!osdmap->get_addrs(whoami).probably_equals(
+ } else if (!osdmap->get_addrs(whoami).legacy_equals(
client_messenger->get_myaddrs())) {
clog->error() << "map e" << osdmap->get_epoch()
<< " had wrong client addr (" << osdmap->get_addrs(whoami)
<< " != my " << client_messenger->get_myaddrs() << ")";
- } else if (!osdmap->get_cluster_addrs(whoami).probably_equals(
+ } else if (!osdmap->get_cluster_addrs(whoami).legacy_equals(
cluster_messenger->get_myaddrs())) {
clog->error() << "map e" << osdmap->get_epoch()
<< " had wrong cluster addr ("
<< osdmap->get_cluster_addrs(whoami)
<< " != my " << cluster_messenger->get_myaddrs() << ")";
- } else if (!osdmap->get_hb_back_addrs(whoami).probably_equals(
+ } else if (!osdmap->get_hb_back_addrs(whoami).legacy_equals(
hb_back_server_messenger->get_myaddrs())) {
clog->error() << "map e" << osdmap->get_epoch()
<< " had wrong heartbeat back addr ("
<< osdmap->get_hb_back_addrs(whoami)
<< " != my " << hb_back_server_messenger->get_myaddrs()
<< ")";
- } else if (!osdmap->get_hb_front_addrs(whoami).probably_equals(
+ } else if (!osdmap->get_hb_front_addrs(whoami).legacy_equals(
hb_front_server_messenger->get_myaddrs())) {
clog->error() << "map e" << osdmap->get_epoch()
<< " had wrong heartbeat front addr ("