From c834c438a3fa62f24bee7f502cd7921cf2a168eb Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Tue, 28 Nov 2017 17:06:47 +0800 Subject: [PATCH] mds: handle client reconnect gather race Fixes: http://tracker.ceph.com/issues/22263 Signed-off-by: "Yan, Zheng" (cherry picked from commit e4ecf26a8ef622f8290129a682afb1c64b3e7e00) Conflicts: src/mds/Server.cc: need to remove 'reconnect_evicting', otherwise compilation fails --- src/mds/Server.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 236227a5f5529..18c8387bdaa65 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -740,7 +740,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) { // 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 " -- 2.39.5