]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: subscribe to new osdmap while waiting_for_healthy
authorSage Weil <sage@redhat.com>
Thu, 24 Aug 2017 21:56:13 +0000 (17:56 -0400)
committerSage Weil <sage@redhat.com>
Thu, 24 Aug 2017 21:58:26 +0000 (17:58 -0400)
If we are sitting around waiting until we are able to ping our "up" peers,
we need to be sure that our notion of "up" is still correct and we're not
just stuck on an old, stale OSDMap.

Fixes: http://tracker.ceph.com/issues/21121
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc

index 6f3127d2e29e7127b65009faba5033e4729b36d8..f192e611e718fef17af6b7286a9d0bb28a20d3aa 100644 (file)
@@ -5774,6 +5774,9 @@ void OSD::start_waiting_for_healthy()
   dout(1) << "start_waiting_for_healthy" << dendl;
   set_state(STATE_WAITING_FOR_HEALTHY);
   last_heartbeat_resample = utime_t();
+
+  // subscribe to osdmap updates, in case our peers really are known to be dead
+  osdmap_subscribe(osdmap->get_epoch() + 1, false);
 }
 
 bool OSD::_is_healthy()