]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
use simplifed messenger constructor for clients 6087/head
authorJosh Durgin <jdurgin@redhat.com>
Mon, 21 Sep 2015 22:46:42 +0000 (15:46 -0700)
committerNathan Cutler <ncutler@suse.cz>
Sat, 26 Sep 2015 19:31:22 +0000 (21:31 +0200)
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>
(cherry picked from commit a3a8c85b79afef67681c32c57b591c0e0a87a349)

Conflicts:
src/ceph_fuse.cc
src/ceph_syn.cc
src/libcephfs.cc
src/librados/RadosClient.cc
src/mds/MDSUtility.cc
src/mon/MonClient.cc
src/test/mon/test_mon_workloadgen.cc
            - different arguments to Messenger::create() in firefly

src/ceph_fuse.cc
src/ceph_syn.cc
src/libcephfs.cc
src/librados/RadosClient.cc
src/mds/MDSUtility.cc
src/mon/MonClient.cc
src/test/mon/test_mon_workloadgen.cc

index 54616f60f99d38ca246e7262b303f85ce6bde090..cc97938a9aa530bbc89fbc23668db52d3d46214e 100644 (file)
@@ -120,9 +120,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,
-                                 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 c3410aa61d413a91d8fb78db00a668c5598b79aa..1d10fa2e62c9e8020f0123c794535bd3c4adf73f 100644 (file)
@@ -65,9 +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,
-                                     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 88e86ba8347068f10d35343b7c63314bc9d3dea0..a8a32f48ee87af3257d02ce091b7d659ad329364 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),
@@ -80,7 +79,7 @@ public:
       goto fail;
 
     //network connection
-    messenger = Messenger::create(cct, entity_name_t::CLIENT(), "client", msgr_nonce);
+    messenger = Messenger::create_client_messenger(cct, "client");
 
     //at last the client
     ret = -1002;
@@ -215,7 +214,6 @@ public:
   }
 
 private:
-  uint64_t msgr_nonce;
   bool mounted;
   bool inited;
   Client *client;
@@ -242,14 +240,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 74dda533e47d7d388859d2bc5b2c16a0152b7f0d..572aa2528d5d65c75d99ed806144931bdef1b1da 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) {
@@ -206,7 +204,6 @@ int librados::RadosClient::connect()
   common_init_finish(cct);
 
   int err;
-  uint64_t nonce;
 
   // already connected?
   if (state == CONNECTING)
@@ -221,9 +218,7 @@ int librados::RadosClient::connect()
     goto out;
 
   err = -ENOMEM;
-  nonce = getpid() + (1000000 * (uint64_t)rados_instance.inc());
-  messenger = Messenger::create(cct, entity_name_t::CLIENT(-1),
-                               "radosclient", nonce);
+  messenger = Messenger::create_client_messenger(cct, "radosclient");
   if (!messenger)
     goto out;
 
index 09be280f3603be9b0573298e7cf0366f9d555230..65cf5c61dfac1b7158879f2379134a3c87254024 100644 (file)
@@ -25,7 +25,7 @@ MDSUtility::MDSUtility() :
   waiting_for_mds_map(NULL)
 {
   monc = new MonClient(g_ceph_context);
-  messenger = Messenger::create(g_ceph_context, entity_name_t::CLIENT(), "mds", getpid());
+  messenger = Messenger::create_client_messenger(g_ceph_context, "mds");
   mdsmap = new MDSMap();
   osdmap = new OSDMap();
   objecter = new Objecter(g_ceph_context, messenger, monc, osdmap, lock, timer, 0, 0);
index 1bbd4675fac66661fcf77864893cf05377932fd7..0272dfdd189421d625a50a86495db1cdac60f140 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,
-                                              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;
@@ -213,9 +211,7 @@ int MonClient::ping_monitor(const string &mon_id, string *result_reply)
 
   MonClientPinger *pinger = new MonClientPinger(cct, result_reply);
 
-  Messenger *smsgr = Messenger::create(cct,
-                                      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 3c6ff5627433c4959d1c3349ef53c46567c92384..d1659d6d016a090ec6886c81f57a85edaea34c4a 100644 (file)
@@ -247,8 +247,7 @@ class ClientStub : public TestStub
       return err;
     }
 
-    messenger.reset(Messenger::create(cct, entity_name_t::CLIENT(-1),
-                                     "stubclient", getpid()));
+    messenger.reset(Messenger::create_client_messenger(cct, "stubclient"));
     assert(messenger.get() != NULL);
 
     messenger->set_default_policy(