From: Sage Weil Date: Thu, 11 Sep 2014 05:13:42 +0000 (-0700) Subject: mds/Beacon: do not reconnect to mon in quick succession X-Git-Tag: v0.86~92^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fb5769aee058b28d4d4229a692b8b093b2afde0;p=ceph.git mds/Beacon: do not reconnect to mon in quick succession Wait at least one beacon interval between mon session resets. Fixes: #9428 Signed-off-by: Sage Weil --- diff --git a/src/mds/Beacon.cc b/src/mds/Beacon.cc index 7ccbe0e2aa4ce..1a295ce96f7e0 100644 --- a/src/mds/Beacon.cc +++ b/src/mds/Beacon.cc @@ -207,10 +207,12 @@ bool Beacon::is_laggy() dout(5) << "is_laggy " << since << " > " << g_conf->mds_beacon_grace << " since last acked beacon" << dendl; was_laggy = true; - if (since > (g_conf->mds_beacon_grace*2)) { + if (since > (g_conf->mds_beacon_grace*2) && + now > last_mon_reconnect + g_conf->mds_beacon_interval) { // maybe it's not us? dout(5) << "initiating monitor reconnect; maybe we're not the slow one" << dendl; + last_mon_reconnect = now; monc->reopen_session(); } return true; diff --git a/src/mds/Beacon.h b/src/mds/Beacon.h index a9ac549d0c585..883044494839c 100644 --- a/src/mds/Beacon.h +++ b/src/mds/Beacon.h @@ -57,6 +57,7 @@ class Beacon : public Dispatcher version_t last_seq; // last seq sent to monitor std::map seq_stamp; // seq # -> time sent utime_t last_acked_stamp; // last time we sent a beacon that got acked + utime_t last_mon_reconnect; bool was_laggy; utime_t laggy_until;