1) do not share OSD maps with peers that already have them
2) do not share maps with oneself
Signed-off-by: Greg Farnum <greg@inktank.com>
}
if (con->get_messenger() == osd->cluster_messenger &&
+ con != osd->cluster_messenger->get_loopback_connection() &&
osdmap->is_up(name.num()) &&
(osdmap->get_cluster_addr(name.num()) == con->get_peer_addr() ||
osdmap->get_hb_back_addr(name.num()) == con->get_peer_addr())) {
// remember
- epoch_t has = osd->get_peer_epoch(name.num());
+ epoch_t has = MAX(osd->get_peer_epoch(name.num()), epoch);
// share?
if (has < osdmap->get_epoch()) {