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)
<< " 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);