This allows mons that got stuck in the initial quorum's monmap as noname-*
to fix their name before joining in.
Signed-off-by: Sage Weil <sage@inktank.com>
join->put();
return true;
}
- if (pending_map.contains(join->addr)) {
+ if (pending_map.contains(join->addr) && pending_map.get_name(join->addr) == join->name) {
dout(10) << " already have " << join->addr << dendl;
join->put();
return true;
dout(0) << "adding/updating " << join->name << " at " << join->addr << " to monitor cluster" << dendl;
if (pending_map.contains(join->name))
pending_map.remove(join->name);
+ if (pending_map.contains(join->addr))
+ pending_map.remove(pending_map.get_name(join->addr));
pending_map.add(join->name, join->addr);
pending_map.last_changed = ceph_clock_now(g_ceph_context);
join->put();