]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: set up messener auth_* before setting dispatcher (and going 'ready')
authorSage Weil <sage@redhat.com>
Mon, 4 Feb 2019 09:28:06 +0000 (03:28 -0600)
committerSage Weil <sage@redhat.com>
Thu, 7 Feb 2019 18:10:34 +0000 (12:10 -0600)
The messenger doesn't activate until you set the dispatcher.  Set up the auth_client
and auth_server values before that.

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

index 720f599bd553b3b49ba03cc3b680ef18fe169f18..2bfc251ca97171f5283316144e947c5c6acb1eb3 100644 (file)
@@ -3007,23 +3007,6 @@ int OSD::init()
     service.set_statfs(stbuf, alerts);
   }
 
-  // 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();
-  if (r < 0)
-    goto out;
-
   // client_messenger auth_client is already set up by monc.
   for (auto m : { cluster_messenger,
        objecter_messenger,
@@ -3041,6 +3024,23 @@ 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();
+  if (r < 0)
+    goto out;
+
   mgrc.set_pgstats_cb([this](){ return collect_pg_stats(); });
   mgrc.set_perf_metric_query_cb(
     [this](const std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> &queries) {