]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
OSD: heartbeat peers need to be updated when a new OSD added into an already existed...
authorPan Liu <pan.liu@istuary.com>
Fri, 18 Nov 2016 12:01:42 +0000 (20:01 +0800)
committerPan Liu <pan.liu@istuary.com>
Fri, 18 Nov 2016 12:01:42 +0000 (20:01 +0800)
Signed-off-by: Pan Liu <pan.liu@istuary.com>
src/osd/OSD.cc

index f294aad6007713ee9847fa4ccb06449c35ab9f3e..7510beea499810237d347fa0c734250505f3b4f5 100644 (file)
@@ -6659,6 +6659,7 @@ void OSD::note_down_osd(int peer)
 void OSD::note_up_osd(int peer)
 {
   service.forget_peer_epoch(peer, osdmap->get_epoch() - 1);
+  heartbeat_set_peers_need_update();
 }
 
 struct C_OnMapCommit : public Context {
@@ -6989,6 +6990,10 @@ void OSD::_committed_osd_maps(epoch_t first, epoch_t last, MOSDMap *m)
           waited_for_reservations = true;
         }
        note_down_osd(*p);
+      } else if (*p != whoami &&
+                !osdmap->have_inst(*p) &&
+                newmap->is_up(*p)) {
+        note_up_osd(*p);
       }
     }