]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/msgr: make ceph_perf_msgr_client/server work. 28842/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 2 Jul 2019 14:41:02 +0000 (22:41 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Wed, 3 Jul 2019 05:39:59 +0000 (13:39 +0800)
Met the following error:
 -1> 2019-07-02T21:09:54.977+0800 7f22ab00b700 -1 /home/ceph/src/msg/async/ProtocolV1.cc: In function 'Ct<ProtocolV1>* ProtocolV1::send_connect_message()' thread 7f22ab00b700 time 2019-07-02T21:09:54.964260+0800
/home/ceph/src/msg/async/ProtocolV1.cc: 1448: FAILED ceph_assert(messenger->auth_client)

 ceph version v15.0.0-2271-gbeb0c343b3 (beb0c343b3f18297b09ddc61b0c2e0156f109455) octopus (dev)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1aa) [0x7f22b2543e8e]
 2: (()+0x154b110) [0x7f22b2544110]
 3: (ProtocolV1::send_connect_message()+0x132) [0x7f22b2850fd4]
 4: (Ct<ProtocolV1>* CtFun<ProtocolV1>::_call<>(ProtocolV1*, std::integer_sequence<unsigned long>) const+0x68) [0x7f22b28668ce]
 5: (CtFun<ProtocolV1>::call(ProtocolV1*) const+0x28) [0x7f22b2866730]
 6: (()+0x184be7d) [0x7f22b2844e7d]
 7: (()+0x1866170) [0x7f22b285f170]
 8: (std::function<void (char*, long)>::operator()(char*, long) const+0x61) [0x7f22b28259cb]
 9: (AsyncConnection::process()+0xd3b) [0x7f22b282008f]
 10: (C_handle_read::do_request(unsigned long)+0x28) [0x7f22b2824a94]
 11: (EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*)+0x678) [0x7f22b28a4bd8]
 12: (()+0x18b9438) [0x7f22b28b2438]
 13: (()+0x18ba90b) [0x7f22b28b390b]
 14: (std::function<void ()>::operator()() const+0x32) [0x7f22b28b0c8e]
 15: (void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&)+0x20) [0x7f22b28b052b]
 16: (std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&)+0x26) [0x7f22b28afc9e]
 17: (decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>)+0x28) [0x7f22b28b1bee]
 18: (std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()()+0x1d) [0x7f22b28b1bbf]
 19: (std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run()+0x1c) [0x7f22b28b1b9e]
 20: (()+0xd01b0) [0x7f22b08dd1b0]
 21: (()+0x76db) [0x7f22bb9d56db]
 22: (clone()+0x3f) [0x7f22b032588f]

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/test/msgr/perf_msgr_client.cc
src/test/msgr/perf_msgr_server.cc

index 992217e341daf13c36de185ca3673569d544d5db..9a02b3485a830a7454bcd94d0b781e92a7503779 100644 (file)
@@ -28,6 +28,7 @@ using namespace std;
 #include "global/global_init.h"
 #include "msg/Messenger.h"
 #include "messages/MOSDOp.h"
+#include "auth/DummyAuth.h"
 
 #include <atomic>
 
@@ -114,10 +115,12 @@ class MessengerClient {
   int think_time_us;
   vector<Messenger*> msgrs;
   vector<ClientThread*> clients;
+  DummyAuthClientServer dummy_auth;
 
  public:
   MessengerClient(const string &t, const string &addr, int delay):
-      type(t), serveraddr(addr), think_time_us(delay) {
+      type(t), serveraddr(addr), think_time_us(delay),
+      dummy_auth(g_ceph_context) {
   }
   ~MessengerClient() {
     for (uint64_t i = 0; i < clients.size(); ++i)
@@ -131,9 +134,11 @@ class MessengerClient {
     entity_addr_t addr;
     addr.parse(serveraddr.c_str());
     addr.set_nonce(0);
+    dummy_auth.auth_registry.refresh_config();
     for (int i = 0; i < jobs; ++i) {
       Messenger *msgr = Messenger::create(g_ceph_context, type, entity_name_t::CLIENT(0), "client", getpid()+i, 0);
       msgr->set_default_policy(Messenger::Policy::lossless_client(0));
+      msgr->set_auth_client(&dummy_auth);
       msgr->start();
       entity_addrvec_t addrs(addr);
       ConnectionRef conn = msgr->connect_to_osd(addrs);
index d5b5ba8170d389f5c09a8f41e46822ea704d0d6c..cb025fa4912604c78cb7cfa4e7b5e336c1a96c41 100644 (file)
@@ -29,6 +29,7 @@ using namespace std;
 #include "msg/Messenger.h"
 #include "messages/MOSDOp.h"
 #include "messages/MOSDOpReply.h"
+#include "auth/DummyAuth.h"
 
 class ServerDispatcher : public Dispatcher {
   uint64_t think_time;
@@ -109,12 +110,16 @@ class MessengerServer {
   string type;
   string bindaddr;
   ServerDispatcher dispatcher;
+  DummyAuthClientServer dummy_auth;
 
  public:
   MessengerServer(const string &t, const string &addr, int threads, int delay):
-      msgr(NULL), type(t), bindaddr(addr), dispatcher(threads, delay) {
+      msgr(NULL), type(t), bindaddr(addr), dispatcher(threads, delay),
+      dummy_auth(g_ceph_context) {
     msgr = Messenger::create(g_ceph_context, type, entity_name_t::OSD(0), "server", 0, 0);
     msgr->set_default_policy(Messenger::Policy::stateless_server(0));
+    dummy_auth.auth_registry.refresh_config();
+      msgr->set_auth_server(&dummy_auth);
   }
   ~MessengerServer() {
     msgr->shutdown();