From: Sage Weil Date: Thu, 6 Jul 2017 21:53:34 +0000 (-0400) Subject: mon/MgrMonitor: clear last_beacon after mon election X-Git-Tag: v12.1.1~58^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9f91df6bedb8662239bb603e6b60ce78d14714c0;p=ceph.git mon/MgrMonitor: clear last_beacon after mon election The last_beacon map is local to an election interval; if there is a new election completed we should reset it or else we may kill an apparently laggy mgr that hasn't been able to get a beacon processed due to the mon quorum changing, or had its beacon processed on a different leader. Signed-off-by: Sage Weil --- diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index 5420bdee3d99..e1688a39681e 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -485,6 +485,13 @@ void MgrMonitor::tick() } } +void MgrMonitor::on_restart() +{ + // Clear out the leader-specific state. + last_beacon.clear(); +} + + bool MgrMonitor::promote_standby() { assert(pending_map.active_gid == 0); diff --git a/src/mon/MgrMonitor.h b/src/mon/MgrMonitor.h index ca363ddeef6e..0dc1af571dee 100644 --- a/src/mon/MgrMonitor.h +++ b/src/mon/MgrMonitor.h @@ -79,6 +79,8 @@ public: void send_digests(); void on_active() override; + void on_restart() override; + void get_health(list >& summary, list > *detail, CephContext *cct) const override;