]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: send latest osdmap when we stop sending heartbeats to peer
authorSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 20:11:22 +0000 (13:11 -0700)
committerSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 20:23:55 +0000 (13:23 -0700)
Otherwise, they may still expect them, and may mark us down.

src/osd/OSD.cc

index 40f199f1253f518c74d8389aef51fa4ac89cbeff..cddcd3249afe0ff16fca882c920e2ec0e891e3a1 100644 (file)
@@ -1211,8 +1211,10 @@ void OSD::update_heartbeat_peers()
               (!osdmap->is_up(p->first) ||
                osdmap->get_hb_inst(p->first) != old_inst[p->first])) {
       dout(10) << "update_heartbeat_peers: marking down old _to peer " << old_inst[p->first] 
-              << " as of " << p->second << dendl;      
-      heartbeat_messenger->mark_down(old_inst[p->first].addr);
+              << " as of " << p->second << dendl;
+      // share latest map with this peer, so they know not to expect
+      // heartbeats from us.  otherwise they may mark us down!
+      _share_map_outgoing(heartbeat_inst[p->first]);
     }
   }
   for (map<int,epoch_t>::iterator p = old_from.begin();