From: Yan, Zheng Date: Wed, 12 Dec 2018 11:49:40 +0000 (+0800) Subject: mds: use mono_clock for reconnect timeout X-Git-Tag: v13.2.5~22^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9b9d9d4d2ca1ce254eb10a9e32ea1e66f08bfec9;p=ceph.git mds: use mono_clock for reconnect timeout Signed-off-by: "Yan, Zheng" (cherry picked from commit 4982693fcfb722bc8256058f414ca9a0c7b397b0) Conflicts: src/mds/Server.cc --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index caf2726005310..161f29026184c 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -990,7 +990,7 @@ void Server::reconnect_clients(MDSInternalContext *reconnect_done_) // clients will get the mdsmap and discover we're reconnecting via the monitor. - reconnect_start = ceph_clock_now(); + reconnect_start = clock::now(); dout(1) << "reconnect_clients -- " << client_reconnect_gather.size() << " sessions" << dendl; mds->sessionmap.dump(); } @@ -1009,8 +1009,7 @@ void Server::handle_client_reconnect(MClientReconnect *m) return; } - utime_t delay = ceph_clock_now(); - delay -= reconnect_start; + auto delay = std::chrono::duration(clock::now() - reconnect_start).count(); dout(10) << " reconnect_start " << reconnect_start << " delay " << delay << dendl; bool deny = false; @@ -1234,9 +1233,8 @@ void Server::reconnect_tick() return; } - utime_t reconnect_end = reconnect_start; - reconnect_end += g_conf->mds_reconnect_timeout; - if (ceph_clock_now() >= reconnect_end && + auto elapse = std::chrono::duration(clock::now() - reconnect_start).count(); + if (elapse >= g_conf->mds_reconnect_timeout && !client_reconnect_gather.empty()) { dout(10) << "reconnect timed out" << dendl; diff --git a/src/mds/Server.h b/src/mds/Server.h index ff906d4b09e14..3b2fb1fa3df72 100644 --- a/src/mds/Server.h +++ b/src/mds/Server.h @@ -89,7 +89,7 @@ private: int failed_reconnects; bool reconnect_evicting; // true if I am waiting for evictions to complete // before proceeding to reconnect_gather_finish - utime_t reconnect_start; + time reconnect_start = time::min(); set client_reconnect_gather; // clients i need a reconnect msg from. feature_bitset_t supported_features;