From: Kefu Chai Date: Tue, 18 May 2021 09:45:28 +0000 (+0800) Subject: Merge pull request #41364 from rzarzynski/wip-crimson-monc-pending_messages-assert X-Git-Tag: v17.1.0~1941 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3b653b331bff0d6bc423ea37ca4f9812003f467c;p=ceph.git Merge pull request #41364 from rzarzynski/wip-crimson-monc-pending_messages-assert crimson/monc: fix send_message() racing with reopen_session(). Reviewed-by: Kefu Chai --- 3b653b331bff0d6bc423ea37ca4f9812003f467c diff --cc src/crimson/mon/MonClient.cc index b97ed411fdb9,6234f7555bba..5975c9b4460e --- a/src/crimson/mon/MonClient.cc +++ b/src/crimson/mon/MonClient.cc @@@ -1026,13 -1031,13 +1031,13 @@@ Client::run_command(std::string&& cmd }); } -seastar::future<> Client::send_message(MessageRef m) +seastar::future<> Client::send_message(MessageURef m) { - if (active_con) { + if (active_con && ready_to_send) { assert(pending_messages.empty()); - return active_con->get_conn()->send(m); + return active_con->get_conn()->send(std::move(m)); } else { - auto& delayed = pending_messages.emplace_back(m); + auto& delayed = pending_messages.emplace_back(std::move(m)); return delayed.pr.get_future(); } }