]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: do not prime service cache on reconfig 39955/head
authorSage Weil <sage@newdream.net>
Tue, 9 Mar 2021 18:15:20 +0000 (12:15 -0600)
committerSage Weil <sage@newdream.net>
Tue, 9 Mar 2021 19:03:38 +0000 (13:03 -0600)
Ceph daemon reconfig does not need any daemon state refresh since we don't
do a restart--we just rewrite the ceph.conf.  This also avoids priming
our cache with a 'starting' state when the daemon wasn't touched.

Fixes: https://tracker.ceph.com/issues/49675
Signed-off-by: Sage Weil <sage@newdream.net>
src/pybind/mgr/cephadm/serve.py

index 0c33ce394a15e8ea2f75ecdce9ac7e7a476feebe..ac5137f4e1ee14dab77dbdcf30adbeb7ad820c21 100644 (file)
@@ -852,15 +852,21 @@ class CephadmServe:
                     ] + daemon_spec.extra_args,
                     stdin=json.dumps(daemon_spec.final_config),
                     image=image)
-                if not code and daemon_spec.host in self.mgr.cache.daemons:
-                    # prime cached service state with what we (should have)
-                    # just created
-                    sd = daemon_spec.to_daemon_description(
-                        DaemonDescriptionStatus.running, 'starting')
-                    self.mgr.cache.add_daemon(daemon_spec.host, sd)
-                    if daemon_spec.daemon_type in ['grafana', 'iscsi', 'prometheus', 'alertmanager']:
-                        self.mgr.requires_post_actions.add(daemon_spec.daemon_type)
-                self.mgr.cache.invalidate_host_daemons(daemon_spec.host)
+
+                # refresh daemon state?  (ceph daemon reconfig does not need it)
+                if not reconfig or daemon_spec.daemon_type not in CEPH_TYPES:
+                    if not code and daemon_spec.host in self.mgr.cache.daemons:
+                        # prime cached service state with what we (should have)
+                        # just created
+                        sd = daemon_spec.to_daemon_description(
+                            DaemonDescriptionStatus.running, 'starting')
+                        self.mgr.cache.add_daemon(daemon_spec.host, sd)
+                        if daemon_spec.daemon_type in [
+                            'grafana', 'iscsi', 'prometheus', 'alertmanager'
+                        ]:
+                            self.mgr.requires_post_actions.add(daemon_spec.daemon_type)
+                    self.mgr.cache.invalidate_host_daemons(daemon_spec.host)
+
                 self.mgr.cache.update_daemon_config_deps(
                     daemon_spec.host, daemon_spec.name(), daemon_spec.deps, start_time)
                 self.mgr.cache.save_host(daemon_spec.host)