]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: handle client reconnect gather race 19326/head
authorYan, Zheng <zyan@redhat.com>
Tue, 28 Nov 2017 09:06:47 +0000 (17:06 +0800)
committerYan, Zheng <zyan@redhat.com>
Tue, 5 Dec 2017 02:59:03 +0000 (10:59 +0800)
Fixes: http://tracker.ceph.com/issues/22263
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit e4ecf26a8ef622f8290129a682afb1c64b3e7e00)

src/mds/Server.cc

index 38c44523e95c90b8858b4bf8b4c35e90d1e3976c..3956dcf8cd873c4ae3e1fbfd8d542c63710ceedd 100644 (file)
@@ -895,7 +895,7 @@ void Server::handle_client_reconnect(MClientReconnect *m)
   dout(10) << " reconnect_start " << reconnect_start << " delay " << delay << dendl;
 
   bool deny = false;
-  if (!mds->is_reconnect()) {
+  if (!mds->is_reconnect() || mds->get_want_state() != CEPH_MDS_STATE_RECONNECT || reconnect_evicting) {
     // XXX maybe in the future we can do better than this?
     dout(1) << " no longer in reconnect state, ignoring reconnect, sending close" << dendl;
     mds->clog->info() << "denied reconnect attempt (mds is "