DaemonStatePtr daemon;
if (daemon_state.exists(key)) {
+ dout(20) << "updating existing DaemonState for " << key << dendl;
daemon = daemon_state.get(key);
}
if (m->service_daemon && !daemon) {
daemon_state.insert(daemon);
}
if (daemon) {
- dout(20) << "updating existing DaemonState for " << m->daemon_name << dendl;
+ if (m->service_daemon) {
+ // update the metadata through the daemon state index to
+ // ensure it's kept up-to-date
+ daemon_state.update_metadata(daemon, m->daemon_metadata);
+ }
+
std::lock_guard l(daemon->lock);
daemon->perf_counters.clear();
if (m->service_daemon) {
- daemon->set_metadata(m->daemon_metadata);
daemon->service_status = m->daemon_status;
utime_t now = ceph_clock_now();