From: Sage Weil Date: Sun, 19 Jan 2020 21:17:46 +0000 (-0600) Subject: mon/ConfigMonitor: do not 'config get' on NO_MON_UPDATE options X-Git-Tag: v15.1.0~117^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c954967fadfc47c17058c8ae45ebceca61c3443d;p=ceph.git mon/ConfigMonitor: do not 'config get' on NO_MON_UPDATE options We shouldn't be storing these, so don't fetch them either. Fixes: https://tracker.ceph.com/issues/42820 Signed-off-by: Sage Weil --- diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index f22dac578d34..0890b22692ab 100644 --- a/src/mon/ConfigMonitor.cc +++ b/src/mon/ConfigMonitor.cc @@ -286,13 +286,6 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) &src); if (cmd_getval(g_ceph_context, cmdmap, "key", name)) { - // get a single value - auto p = config.find(name); - if (p != config.end()) { - odata.append(p->second); - odata.append("\n"); - goto reply; - } const Option *opt = g_conf().find_option(name); if (!opt) { opt = mon->mgrmon()->find_module_option(name); @@ -301,6 +294,18 @@ bool ConfigMonitor::preprocess_command(MonOpRequestRef op) err = -ENOENT; goto reply; } + if (opt->has_flag(Option::FLAG_NO_MON_UPDATE)) { + err = -EINVAL; + ss << name << " is special and cannot be stored by the mon"; + goto reply; + } + // get a single value + auto p = config.find(name); + if (p != config.end()) { + odata.append(p->second); + odata.append("\n"); + goto reply; + } if (!entity.is_client() && !boost::get(&opt->daemon_value)) { odata.append(Option::to_str(opt->daemon_value));