]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #41364 from rzarzynski/wip-crimson-monc-pending_messages-assert
authorKefu Chai <kchai@redhat.com>
Tue, 18 May 2021 09:45:28 +0000 (17:45 +0800)
committerGitHub <noreply@github.com>
Tue, 18 May 2021 09:45:28 +0000 (17:45 +0800)
crimson/monc: fix send_message() racing with reopen_session().

Reviewed-by: Kefu Chai <kchai@redhat.com>
1  2 
src/crimson/mon/MonClient.cc
src/crimson/mon/MonClient.h

index b97ed411fdb956a567dab6581d7f4351c2ae8e54,6234f7555bbaf09992f993cde01d5216c2794e92..5975c9b4460e1fadd75aeee508c298784008a1c4
@@@ -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();
    }
  }
Simple merge