If we search for myaddrs, then we will detect our rank properly if we were
[a,b] and the a addr got removed.
Signed-off-by: Sage Weil <sage@redhat.com>
}
int get_rank(const entity_addr_t& a) const {
string n = get_name(a);
- if (n.empty())
- return -1;
-
- return get_rank(n);
+ if (!n.empty()) {
+ return get_rank(n);
+ }
+ return -1;
+ }
+ int get_rank(const entity_addrvec_t& av) const {
+ string n = get_name(av);
+ if (!n.empty()) {
+ return get_rank(n);
+ }
+ return -1;
}
bool get_addr_name(const entity_addr_t& a, string& name) {
if (addr_mons.count(a) == 0)
dout(10) << "monmap " << *monmap << dendl;
// note my rank
- int newrank = monmap->get_rank(messenger->get_myaddr());
+ int newrank = monmap->get_rank(messenger->get_myaddrs());
if (newrank < 0 && rank >= 0) {
// was i ever part of the quorum?
if (has_ever_joined) {