summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-01-25 09:27:00 -0800
committerSage Weil <sage@inktank.com>2013-02-04 22:06:12 -0800
commit9ca3a165ded62313ba153d7bab89dadf3f73999f (patch)
tree6b9778e41d25ad84851b33e51274f60c4b66b375
parent4cb28b6ed5a702fdac99b8ec71233ef7f877a7a2 (diff)
downloadceph-9ca3a165ded62313ba153d7bab89dadf3f73999f.tar.gz
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> (cherry picked from commit 1bc419a7affb056540ba8f9b332b6ff9380b37af)
-rw-r--r--src/osd/OSD.cc8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index a8925b5b3d7..bff9b6901e9 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -4541,13 +4541,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;
}
}