From: Sage Weil Date: Fri, 6 Dec 2019 17:10:22 +0000 (-0600) Subject: common/config: update values when they are removed via mon X-Git-Tag: v14.2.8~79^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F32846%2Fhead;p=ceph.git common/config: update values when they are removed via mon 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 (cherry picked from commit 56be2e4a373dcf794756eaf05958dd6f44a4ca9e) --- diff --git a/src/common/config.cc b/src/common/config.cc index 4154ac66194f..8024d433bf6a 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -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);