New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
config: complains when a setting is not tracked #7085
Conversation
* not all config items are tracked, so it does not take any effect after we sucessfully changed them using "ceph tell <daemon> injectargs --foo-bar 15', as shown by the command output: $daemon: foo_bar = '15' if foo-bar happens to be the one not tracked by any components in <daemon>. in this fix, the message of $daemon: foo_bar = '15' (unchangeable) is returned instead. nevertheless, the config is still updated. as "ceph daemon <daemon> config show | grep foo_bar" shows: "foo_bar": "15" this helps user to understand that the setting is not dynamically changeable. * update the test accordingly Fixes: ceph#11692 Signed-off-by: Kefu Chai <kchai@redhat.com>
lgtm |
config: complains when a setting is not tracked Reviewed-by: Sage Weil <sage@redhat.com>
Sorry, just saw this PR as I saw "unchangeable" in our env. It looks to me like if the configuration is not dynamically changeable, we may better NOT to update the config? as the config set by injectargs is not persist to disk , so before reboot the daemon, config will not take effect, after reboot the daemon, config will lost...it doesnt work(i.e make the config change) anyway. |
by
you are suggesting that we should forbid this "injectargs" command, and return error if any of the injected args are not being observed? |
@tchaikov , yes. It is confusing now ,when user see "unchangable" , they expect nothing changed, but actually the config changed in memory but only doesnt make difference. |
user is allowed to inject multiple args in a single command, what do you expect if only one of them is not tracked? |
@tchaikov accept and change other args, report unchangeable to non-tracking args and do nothing for these args. Make sense? |
On Fri, Jun 24, 2016 at 8:35 AM, Xiaoxi Chen notifications@github.com
Regards |
@tchaikov ,but the admin socket on target daemon will show the changed args, even the arg doesn't works at all... We notice this because we had an accident on our network switch so lots of the OSD down and out, and we would intent to speed up the recovery, then we inject "osd_recovery_max_active= 10" and got "unchangeable", but in admin socket we can see this configuration so we assume it is working but actually not. My point is the non-tracking args showing in admin socket config dump is really misleading, other guys will never know whether the args in config dump is make effect if they don't know how this is set, via admin socket or via configuration files. |
@xiaoxichen could you bring this to ceph-devel ML for more discussion? personally, i think your proposal does make sense: does not change the non-tracked opts at all with injectargs. |
we sucessfully changed them using "ceph tell injectargs --foo-bar 15',
as shown by the command output:
$daemon: foo_bar = '15'
if foo-bar happens to be the one not tracked by any components in .
in this fix, the message of
$daemon: foo_bar = '15' (unchangeable)
is returned instead. nevertheless, the config is still updated. as
"ceph daemon config show | grep foo_bar" shows:
"foo_bar": "15"
this helps user to understand that the setting is not dynamically
changeable.
Fixes: #11692
Signed-off-by: Kefu Chai kchai@redhat.com