]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: destroy reconnect msg when it is from non-existent session 29097/head
authorshenhang <shenhang@kuaishou.com>
Sun, 30 Jun 2019 01:56:29 +0000 (09:56 +0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 17 Jul 2019 19:54:49 +0000 (12:54 -0700)
fixes: http://tracker.ceph.com/issues/40588

This bug is from backporting "https://github.com/ceph/ceph/pull/27256"
On version mimic and luminous, the type of msg determines msg
has to be destroyed explictly.
Signed-off-by: Shen Hang <harryshen18@gmail.com>
(cherry picked from commit 43ffd5b0acfaa0e246efc779e13da61dec5aa249)

src/mds/Server.cc

index 2249d317300c35aea7107968f4d3e958d97d7595..8854525376d34875c288fc4f2ff0fdf982dece21 100644 (file)
@@ -1009,8 +1009,10 @@ void Server::handle_client_reconnect(MClientReconnect *m)
   dout(7) << "handle_client_reconnect " << m->get_source() << dendl;
   client_t from = m->get_source().num();
   Session *session = mds->get_session(m);
-  if (!session)
+  if (!session) {
+    m->put();
     return;
+  }
 
   if (!mds->is_reconnect() && mds->get_want_state() == CEPH_MDS_STATE_RECONNECT) {
     dout(10) << " we're almost in reconnect state (mdsmap delivery race?); waiting" << dendl;