From 0213ec252970120d5bb449bac6881a7efa872603 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 26 Feb 2019 12:27:40 -0800 Subject: [PATCH] mds: get ref to message for lambda Otherwise we have invalid reads. Caught by valgrind. This cannot be cherry-picked as it was a bug introduced by a backport. Introduced-by: 2f6289ff7f7385e462d59e096634a1dee0b60837 Fixes: http://tracker.ceph.com/issues/38488 Signed-off-by: Patrick Donnelly --- src/mds/Server.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 7d7e818a550..6a3edc99bba 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -372,7 +372,7 @@ void Server::handle_client_session(MClientSession *m) session->set_client_metadata(m->client_meta); auto& client_metadata = session->info.client_metadata; - auto log_session_status = [this, m, session](boost::string_view status, boost::string_view err) { + auto log_session_status = [this, m = m->get(), session](boost::string_view status, boost::string_view err) { auto now = ceph_clock_now(); auto throttle_elapsed = m->get_recv_complete_stamp() - m->get_throttle_stamp(); auto elapsed = now - m->get_recv_stamp(); @@ -391,6 +391,7 @@ void Server::handle_client_session(MClientSession *m) ss << ",root=\"" << it->second << "\""; } dout(2) << ss.str() << dendl; + m->put(); }; if (blacklisted) { -- 2.47.3