]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/config: update values when they are removed via mon 32846/head
authorSage Weil <sage@redhat.com>
Fri, 6 Dec 2019 17:10:22 +0000 (11:10 -0600)
committerNathan Cutler <ncutler@suse.com>
Fri, 24 Jan 2020 16:24:56 +0000 (17:24 +0100)
If a value is set via the mon (ceph config set ...), and then later
removed, the removal doesn't propagate to the legacy values (or debug
options) because update_legacy_values() only iterates over legacy value
and not debug options.

Similarly, we want to trigger a config notification to any observers,
so we need to add the option to values.changed.

Fixes: https://tracker.ceph.com/issues/42964
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 56be2e4a373dcf794756eaf05958dd6f44a4ca9e)

src/common/config.cc

index 4154ac66194f9ed2f6df46ee7f77351c48871f91..8024d433bf6a6a77784a083213bcbdc55fb86c4d 100644 (file)
@@ -320,6 +320,11 @@ int md_config_t::set_mon_vals(CephContext *cct,
                  << " cleared (was " << Option::to_str(config->second) << ")"
                  << dendl;
     values.rm_val(name, CONF_MON);
+    // if this is a debug option, it needs to propagate to teh subsys;
+    // this isn't covered by update_legacy_vals() below.  similarly,
+    // we want to trigger a config notification for these items.
+    const Option *o = find_option(name);
+    _refresh(values, *o);
   });
   values_bl.clear();
   update_legacy_vals(values);