]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
use simplifed messenger constructor for clients 6022/head
authorJosh Durgin <jdurgin@redhat.com>
Mon, 21 Sep 2015 22:46:42 +0000 (15:46 -0700)
committerJosh Durgin <jdurgin@redhat.com>
Mon, 21 Sep 2015 22:56:22 +0000 (15:56 -0700)
This is all mechanical except the calculation of the nonce, which is
now always randomized for clients.

Fixes: #13032
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
src/ceph_fuse.cc
src/ceph_syn.cc
src/libcephfs.cc
src/librados/RadosClient.cc
src/mon/MonClient.cc
src/test/mon/test_mon_workloadgen.cc
src/tools/cephfs/MDSUtility.cc

index 9fd8d0e950a27761e73c9ce8ca0646e7a776cd7b..f938a1aa1c92cb42228e67b335be3fa64084bd54 100644 (file)
@@ -172,9 +172,7 @@ int main(int argc, const char **argv, const char *envp[]) {
       goto out_mc_start_failed;
 
     // start up network
-    messenger = Messenger::create(g_ceph_context, g_conf->ms_type,
-                                 entity_name_t::CLIENT(), "client",
-                                 getpid());
+    messenger = Messenger::create_client_messenger(g_ceph_context, "client");
     messenger->set_default_policy(Messenger::Policy::lossy_client(0, 0));
     messenger->set_policy(entity_name_t::TYPE_MDS,
                          Messenger::Policy::lossless_client(0, 0));
index 71db206d785f7483d95f068116da2d391b7049c0..1d10fa2e62c9e8020f0123c794535bd3c4adf73f 100644 (file)
@@ -65,10 +65,8 @@ int main(int argc, const char **argv, char *envp[])
 
   cout << "ceph-syn: starting " << g_conf->num_client << " syn client(s)" << std::endl;
   for (int i=0; i<g_conf->num_client; i++) {
-      messengers[i] = Messenger::create(
-       g_ceph_context, g_conf->ms_type,
-       entity_name_t(entity_name_t::TYPE_CLIENT,-1), "synclient",
-       i * 1000000 + getpid());
+    messengers[i] = Messenger::create_client_messenger(g_ceph_context,
+                                                      "synclient");
     messengers[i]->bind(g_conf->public_addr);
     mclients[i] = new MonClient(g_ceph_context);
     mclients[i]->build_initial_monmap();
index 403d0dc11f1276028c99c0da57ae697a60a97b96..40cd028688a8efec76f5a2d0912291c0ec99dc5f 100644 (file)
@@ -34,9 +34,8 @@
 struct ceph_mount_info
 {
 public:
-  ceph_mount_info(uint64_t msgr_nonce_, CephContext *cct_)
-    : msgr_nonce(msgr_nonce_),
-      mounted(false),
+  ceph_mount_info(CephContext *cct_)
+    : mounted(false),
       inited(false),
       client(NULL),
       monclient(NULL),
@@ -77,7 +76,7 @@ public:
       goto fail;
 
     //network connection
-    messenger = Messenger::create(cct, cct->_conf->ms_type, entity_name_t::CLIENT(), "client", msgr_nonce);
+    messenger = Messenger::create_client_messenger(cct, "client");
 
     //at last the client
     ret = -CEPHFS_ERROR_NEW_CLIENT; //defined in libcephfs.h;
@@ -235,7 +234,6 @@ public:
   }
 
 private:
-  uint64_t msgr_nonce;
   bool mounted;
   bool inited;
   Client *client;
@@ -290,14 +288,7 @@ extern "C" const char *ceph_version(int *pmajor, int *pminor, int *ppatch)
 
 extern "C" int ceph_create_with_context(struct ceph_mount_info **cmount, CephContext *cct)
 {
-  uint64_t nonce = 0;
-
-  // 6 bytes of random and 2 bytes of pid
-  get_random_bytes((char*)&nonce, sizeof(nonce));
-  nonce &= ~0xffff;
-  nonce |= (uint64_t)getpid();
-
-  *cmount = new struct ceph_mount_info(nonce, cct);
+  *cmount = new struct ceph_mount_info(cct);
   return 0;
 }
 
index 51c9f677a3905d26aeeccf9b77e47d49cdf48ddc..08ed909448bf38bdc51b6434136435ebce963a54 100644 (file)
@@ -52,8 +52,6 @@
 #undef dout_prefix
 #define dout_prefix *_dout << "librados: "
 
-static atomic_t rados_instance;
-
 bool librados::RadosClient::ms_get_authorizer(int dest_type,
                                              AuthAuthorizer **authorizer,
                                              bool force_new) {
@@ -191,7 +189,6 @@ int librados::RadosClient::connect()
   common_init_finish(cct);
 
   int err;
-  uint64_t nonce;
 
   // already connected?
   if (state == CONNECTING)
@@ -206,9 +203,7 @@ int librados::RadosClient::connect()
     goto out;
 
   err = -ENOMEM;
-  nonce = getpid() + (1000000 * (uint64_t)rados_instance.inc());
-  messenger = Messenger::create(cct, cct->_conf->ms_type, entity_name_t::CLIENT(-1),
-                               "radosclient", nonce);
+  messenger = Messenger::create_client_messenger(cct, "radosclient");
   if (!messenger)
     goto out;
 
index 35c5e726c3ca3a645d83f3f3a4929e151c22c571..6e9843b99f2b7abbe1ccce5497fad3e47c840f30 100644 (file)
@@ -116,9 +116,7 @@ int MonClient::get_monmap_privately()
   bool temp_msgr = false;
   Messenger* smessenger = NULL;
   if (!messenger) {
-    messenger = smessenger = Messenger::create(cct, cct->_conf->ms_type,
-                                              entity_name_t::CLIENT(-1),
-                                              "temp_mon_client", getpid());
+    messenger = smessenger = Messenger::create_client_messenger(cct, "temp_mon_client");
     messenger->add_dispatcher_head(this);
     smessenger->start();
     temp_msgr = true;
@@ -225,9 +223,7 @@ int MonClient::ping_monitor(const string &mon_id, string *result_reply)
 
   MonClientPinger *pinger = new MonClientPinger(cct, result_reply);
 
-  Messenger *smsgr = Messenger::create(cct, cct->_conf->ms_type,
-                                      entity_name_t::CLIENT(-1),
-                                      "temp_ping_client", getpid());
+  Messenger *smsgr = Messenger::create_client_messenger(cct, "temp_ping_client");
   smsgr->add_dispatcher_head(pinger);
   smsgr->start();
 
index cb3419c53acdcf62043829591bdc764d7830bd55..e18906d19314892b316e127171e004a5c42fe341 100644 (file)
@@ -244,8 +244,7 @@ class ClientStub : public TestStub
       return err;
     }
 
-    messenger.reset(Messenger::create(cct, cct->_conf->ms_type, entity_name_t::CLIENT(-1),
-                                     "stubclient", getpid()));
+    messenger.reset(Messenger::create_client_messenger(cct, "stubclient"));
     assert(messenger.get() != NULL);
 
     messenger->set_default_policy(
index 54985adf14e79c3eb543e765e4a0a29e1dc9cbff..708b57c85595d34cf873660eb08ad885a04060cb 100644 (file)
@@ -26,7 +26,7 @@ MDSUtility::MDSUtility() :
   waiting_for_mds_map(NULL)
 {
   monc = new MonClient(g_ceph_context);
-  messenger = Messenger::create(g_ceph_context, g_ceph_context->_conf->ms_type, entity_name_t::CLIENT(), "mds", getpid());
+  messenger = Messenger::create_client_messenger(g_ceph_context, "mds");
   mdsmap = new MDSMap();
   objecter = new Objecter(g_ceph_context, messenger, monc, NULL, 0, 0);
 }