]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix mark_down on heartbeat_messenger addrs
authorSage Weil <sage@newdream.net>
Wed, 9 Dec 2009 23:56:53 +0000 (15:56 -0800)
committerSage Weil <sage@newdream.net>
Thu, 10 Dec 2009 00:06:57 +0000 (16:06 -0800)
This fixes residual outgoing connect attempts and
subsequent 'wrong node' messages from old outgoing
osd_ping messages that never leave our queues.

src/osd/OSD.cc

index f79b0de093b12c92bd68e2d0836ed23b090e1279..c6b0302c9aa6255ea7edcd06a4d2a507e88cce43 100644 (file)
@@ -983,7 +983,7 @@ void OSD::update_heartbeat_peers()
               (!osdmap->is_up(p->first) ||
                osdmap->get_hb_inst(p->first) != old_inst[p->first])) {
       dout(10) << " marking down old _to peer " << old_inst[p->first] << " as of " << p->second << dendl;      
-      messenger->mark_down(old_inst[p->first].addr);
+      heartbeat_messenger->mark_down(old_inst[p->first].addr);
     }
   }
 
@@ -1809,6 +1809,9 @@ void OSD::note_down_osd(int osd)
   messenger->mark_down(osdmap->get_addr(osd));
 
   heartbeat_lock.Lock();
+
+  heartbeat_messenger->mark_down(osdmap->get_hb_addr(osd));
+
   if (heartbeat_inst.count(osd)) {
     if (heartbeat_inst[osd] == osdmap->get_hb_inst(osd)) {
       dout(10) << "note_down_osd removing heartbeat_inst " << heartbeat_inst[osd] << dendl;