From: Prashant D Date: Fri, 24 Jun 2022 15:10:03 +0000 (-0400) Subject: mgr: Remove service_daemon handling from MMgrUpdate X-Git-Tag: v16.2.11~348^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5fb33b8beea7c915afe3052ca338d1888ce12ee4;p=ceph.git mgr: Remove service_daemon handling from MMgrUpdate The service_daemon is only required if client services needs to be registered with mgr. The service_daemon handling is not required in case of MMgrUpdate as it handles mon metadata updates only. Fixes: https://tracker.ceph.com/issues/55322 Signed-off-by: Prashant D (cherry picked from commit 6540937a6d1865642dd799b4996d85d2ee9a99ad) --- diff --git a/src/messages/MMgrUpdate.h b/src/messages/MMgrUpdate.h index 71a528d3150b..5e1f27b5fa8a 100644 --- a/src/messages/MMgrUpdate.h +++ b/src/messages/MMgrUpdate.h @@ -19,7 +19,7 @@ class MMgrUpdate : public Message { private: - static constexpr int HEAD_VERSION = 3; + static constexpr int HEAD_VERSION = 2; static constexpr int COMPAT_VERSION = 1; public: @@ -27,7 +27,6 @@ public: std::string daemon_name; std::string service_name; // optional; otherwise infer from entity type - bool service_daemon = false; std::map daemon_metadata; std::map daemon_status; @@ -40,27 +39,23 @@ public: decode(daemon_name, p); if (header.version >= 2) { decode(service_name, p); - decode(service_daemon, p); - if (service_daemon) { + decode(need_metadata_update, p); + if (need_metadata_update) { decode(daemon_metadata, p); decode(daemon_status, p); } } - if (header.version >= 3) { - decode(need_metadata_update, p); - } } void encode_payload(uint64_t features) override { using ceph::encode; encode(daemon_name, payload); encode(service_name, payload); - encode(service_daemon, payload); - if (service_daemon) { + encode(need_metadata_update, payload); + if (need_metadata_update) { encode(daemon_metadata, payload); encode(daemon_status, payload); } - encode(need_metadata_update, payload); } std::string_view get_type_name() const override { return "mgrupdate"; } @@ -72,9 +67,6 @@ public: out << ceph_entity_type_name(get_source().type()); } out << "." << daemon_name; - if (service_daemon) { - out << " daemon"; - } out << ")"; } diff --git a/src/mgr/DaemonServer.cc b/src/mgr/DaemonServer.cc index 7b863afc472d..430911f6f57f 100644 --- a/src/mgr/DaemonServer.cc +++ b/src/mgr/DaemonServer.cc @@ -558,7 +558,7 @@ bool DaemonServer::handle_update(const ref_t& m) dout(20) << "updating existing DaemonState for " << key << dendl; daemon = daemon_state.get(key); - if (m->need_metadata_update == true && + if (m->need_metadata_update && !m->daemon_metadata.empty()) { daemon_state.update_metadata(daemon, m->daemon_metadata); } diff --git a/src/mgr/MgrClient.cc b/src/mgr/MgrClient.cc index 626c9941a09d..6230b3387172 100644 --- a/src/mgr/MgrClient.cc +++ b/src/mgr/MgrClient.cc @@ -256,8 +256,7 @@ void MgrClient::_send_update() } else { update->daemon_name = cct->_conf->name.get_id(); } - if (service_daemon) { - update->service_daemon = service_daemon; + if (need_metadata_update) { update->daemon_metadata = daemon_metadata; } update->need_metadata_update = need_metadata_update; @@ -598,13 +597,12 @@ int MgrClient::update_daemon_metadata( return -EEXIST; } ldout(cct,1) << service << "." << name << " metadata " << metadata << dendl; - service_daemon = true; service_name = service; daemon_name = name; daemon_metadata = metadata; daemon_dirty_status = true; - if (need_metadata_update == true && + if (need_metadata_update && !daemon_metadata.empty()) { _send_update(); need_metadata_update = false;