mirror of
https://github.com/ceph/ceph
synced 2024-12-14 23:46:28 +00:00
osd: pass new maps to dead osds via existing Connection
Previously we were sending these maps to dead osds via their old addrs using a new outgoing connection and setting the flags so that the msgr would clean up. That mechanism is possibly buggy and fragile, and we can avoid it entirely if we just reuse the existing heartbeat Connection. Signed-off-by: Sage Weil <sage@inktank.com>
This commit is contained in:
parent
76705ace2e
commit
1bc419a7af
@ -4683,13 +4683,7 @@ bool OSD::require_same_or_newer_map(OpRequestRef op, epoch_t epoch)
|
||||
if (!osdmap->have_inst(from) ||
|
||||
osdmap->get_cluster_addr(from) != m->get_source_inst().addr) {
|
||||
dout(0) << "from dead osd." << from << ", dropping, sharing map" << dendl;
|
||||
send_incremental_map(epoch, m->get_source_inst(), true);
|
||||
|
||||
// close after we send the map; don't reconnect
|
||||
Connection *con = m->get_connection();
|
||||
cluster_messenger->mark_down_on_empty(con);
|
||||
cluster_messenger->mark_disposable(con);
|
||||
|
||||
send_incremental_map(epoch, m->get_connection());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user