]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MonClient: set up rotating_secrets, etc before msgr ready
authorSage Weil <sage@redhat.com>
Wed, 6 Feb 2019 04:26:52 +0000 (22:26 -0600)
committerSage Weil <sage@redhat.com>
Thu, 7 Feb 2019 18:10:34 +0000 (12:10 -0600)
We need to have rotating_secrets non-null before we can accept
connections or else we will segfault in handle_auth_request.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MonClient.cc
src/osd/OSD.cc

index 1ca1cedca3c5c5c264a3a11e41867233bab91181..8b8faece8cf3b6bb934904880c4695be6515efb8 100644 (file)
@@ -441,9 +441,6 @@ int MonClient::init()
 {
   ldout(cct, 10) << __func__ << dendl;
 
-  messenger->add_dispatcher_head(this);
-  messenger->set_auth_client(this);
-
   entity_name = cct->_conf->name;
 
   auth_registry.refresh_config();
@@ -469,6 +466,9 @@ int MonClient::init()
 
   initialized = true;
 
+  messenger->set_auth_client(this);
+  messenger->add_dispatcher_head(this);
+
   timer.init();
   finisher.start();
   schedule_tick();
index 2bfc251ca97171f5283316144e947c5c6acb1eb3..0c49d4507173daebda58d6138bc8b0156ffb0cff 100644 (file)
@@ -3024,17 +3024,6 @@ int OSD::init()
   }
   monc->set_handle_authentication_dispatcher(this);
 
-  // i'm ready!
-  client_messenger->add_dispatcher_head(this);
-  cluster_messenger->add_dispatcher_head(this);
-
-  hb_front_client_messenger->add_dispatcher_head(&heartbeat_dispatcher);
-  hb_back_client_messenger->add_dispatcher_head(&heartbeat_dispatcher);
-  hb_front_server_messenger->add_dispatcher_head(&heartbeat_dispatcher);
-  hb_back_server_messenger->add_dispatcher_head(&heartbeat_dispatcher);
-
-  objecter_messenger->add_dispatcher_head(service.objecter);
-
   monc->set_want_keys(CEPH_ENTITY_TYPE_MON | CEPH_ENTITY_TYPE_OSD
                       | CEPH_ENTITY_TYPE_MGR);
   r = monc->init();
@@ -3050,12 +3039,23 @@ int OSD::init()
         get_perf_reports(reports);
       });
   mgrc.init();
-  client_messenger->add_dispatcher_head(&mgrc);
 
   // tell monc about log_client so it will know about mon session resets
   monc->set_log_client(&log_client);
   update_log_config();
 
+  // i'm ready!
+  client_messenger->add_dispatcher_tail(&mgrc);
+  client_messenger->add_dispatcher_tail(this);
+  cluster_messenger->add_dispatcher_head(this);
+
+  hb_front_client_messenger->add_dispatcher_head(&heartbeat_dispatcher);
+  hb_back_client_messenger->add_dispatcher_head(&heartbeat_dispatcher);
+  hb_front_server_messenger->add_dispatcher_head(&heartbeat_dispatcher);
+  hb_back_server_messenger->add_dispatcher_head(&heartbeat_dispatcher);
+
+  objecter_messenger->add_dispatcher_head(service.objecter);
+
   service.init();
   service.publish_map(osdmap);
   service.publish_superblock(superblock);