From c954967fadfc47c17058c8ae45ebceca61c3443d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 19 Jan 2020 15:17:46 -0600 Subject: [PATCH] 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 --- src/mon/ConfigMonitor.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index f22dac578d3..0890b22692a 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)); -- 2.39.5