Re: injectable config values vs non-injectable?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 24, 2018 at 12:27 AM, Wyllys Ingersoll
<wyllys.ingersoll@xxxxxxxxxxxxxx> wrote:
> In Luminous the "config help" command (on a monitor socket) displays
> about 1400 different config variables along with their descriptions,
> defaults, etc.  But, the "safe" field which is part of the Option
> object for some reason is not included in that output.  Mimic appears
> to show the "safeness" boolean in the detailed list (I havent tested
> it, just looking at the code). Not sure why it was omitted from
> earlier releases.

The thing that makes this awkward is that the schema can't
automatically know how options are really being used in the code.  If
there is a class somewhere that takes a setting at construction time,
and then ignores it, then no matter how safe it is to update at
runtime, it will in practice require a service restart.  To actually
document this stuff requires an expert human to do a pass through all
the code where settings are used.

The can_update_at_runtime indicator in mimic is not telling you that
services will necessarily respect the new value, just that it is
possible to set it at runtime (internally, we have a legacy unlocked
structure that is accessed unlocked, so runtime updates to strings are
unsafe by default).

> It would be nice to have a tabular output (or web page) showing *all*
> of the options somewhere for reference.  The current documentation
> only describes a small fraction of them.

This part is much easier -- it was one of the intended uses for the
new(ish) option schema.  It can be included in the docs build pretty
easily by building a little helper utility that dumps out the schema,
and then calling that from sphinx with a little python extension (it
would mean the docs build would depend on a C++ compiler but that's
not a big deal in practice).

Any volunteers?

John

>
>
>
>
>
>
> On Mon, Apr 23, 2018 at 5:33 PM, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
>> On Mon, Apr 23, 2018 at 7:49 AM, Wyllys Ingersoll
>> <wyllys.ingersoll@xxxxxxxxxxxxxx> wrote:
>>> Is there a definitive list anywhere of the config variables that are
>>> "injectable" for a running service vs those that require a restart?
>>
>> If there were, we wouldn't have that deliberately-imprecise phrasing
>> about "may not" have taken effect. :/
>> Eventually, hopefully, each injectable argument will be marked that
>> way and we'll make an explicit flag that needs to be set when you
>> create a new config option. But that's not the world today.
>> -Greg
>>
>>>
>>> thanks,
>>>   Wyllys Ingersoll
>>>   Keeper Technology, LLC
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux