Not all configs returned from CONFIG GET * are settable by config set. (Error in documentation?)

453 views
Skip to first unread message

AlexanderB

unread,
Aug 1, 2017, 4:37:56 PM8/1/17
to Redis DB
The docs for config set (https://redis.io/commands/config-set) state:

"The list of configuration parameters supported by CONFIG SET can be obtained issuing a CONFIG GET * command, that is the symmetrical command used to obtain information about the configuration of a running Redis instance."

However after a bit of trial and error, it appears that for redis 3.2 at least, the following options are returned from CONFIG GET * but are not settable via CONFIG SET. 

The following options return ERR Unsupported CONFIG parameter
port 
tcp-backlog
databases
daemonize
rdbchecksum
supervised
syslog-facility 
unixsocketperm
bind

These configs could just be removed from the return value of conget get * if it can be classified as a straight up bug and hopefully no one is explictly relying on it. 

Itamar Haber

unread,
Aug 1, 2017, 4:50:55 PM8/1/17
to Redis DB
I think that the doc should be changed. These config directive are (most at least) good to have via get. The fact that they can't be changed in runtime is less important imo.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.
To post to this group, send email to redi...@googlegroups.com.
Visit this group at https://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/d/optout.

Jan-Erik Rediger

unread,
Aug 2, 2017, 3:36:39 AM8/2/17
to redi...@googlegroups.com
I'm with Itamar here, it is still useful to have them. We should change
the documentation (also: removing them would be a breaking change)

On Tue, Aug 01, 2017 at 11:50:43PM +0300, Itamar Haber wrote:
> I think that the doc should be changed. These config directive are (most at
> least) good to have via get. The fact that they can't be changed in runtime
> is less important imo.
>
> On Aug 1, 2017 11:38 PM, "AlexanderB" <alb...@demonware.net> wrote:
>
> > The docs for config set (https://redis.io/commands/config-set) state:
> >
> > "The list of configuration parameters supported by CONFIG SET
> > <https://redis.io/commands/config-set> can be obtained issuing a CONFIG
> > GET * command, that is the symmetrical command used to obtain information
> > about the configuration of a running Redis instance."
> >
> > However after a bit of trial and error, it appears that for redis 3.2 at
> > least, the following options are returned from CONFIG GET * but are not
> > settable via CONFIG SET.
> >
> > The following options return ERR Unsupported CONFIG parameter
> > port
> > tcp-backlog
> > databases
> > daemonize
> > rdbchecksum
> > supervised
> > syslog-facility
> > unixsocketperm
> > bind
> >
> > These configs could just be removed from the return value of conget get *
> > if it can be classified as a straight up bug and hopefully no one is
> > explictly relying on it.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Redis DB" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to redis-db+u...@googlegroups.com.
> > To post to this group, send email to redi...@googlegroups.com.
> > Visit this group at https://groups.google.com/group/redis-db.
> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.

Itamar Haber

unread,
Aug 2, 2017, 10:09:39 AM8/2/17
to Redis DB, Jan-Erik Rediger
I think the honor of making this PR to redis-doc should be Mr. Boyd's, unless he is gracious/laptopless and assigns it to the void and then I'd be happy to help ;)


> > To post to this group, send email to redi...@googlegroups.com.
> > Visit this group at https://groups.google.com/group/redis-db.
> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.

> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at https://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.

AlexanderB

unread,
Aug 2, 2017, 11:41:29 AM8/2/17
to Redis DB, jan...@fnordig.de
The problem with just changing the documentation is that CONFIG GET * does already hide some config variables but not all. 

For instance while CONFIG GET * will return the value of "syslog-facility"  (https://github.com/antirez/redis/blob/unstable/src/config.c#L1324) none of the other syslog option such as "syslog-enabled" or "syslog-ident" are returned.

I think that leaves us in a situation where we would need to make a change to source to either return all values unfiltered for what can be set dynamically, or fix the filter. Leaving the filter inconsistently applied is the worst of both worlds.


> > To post to this group, send email to redi...@googlegroups.com.
> > Visit this group at https://groups.google.com/group/redis-db.
> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Redis DB" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.

> To post to this group, send email to redi...@googlegroups.com.
> Visit this group at https://groups.google.com/group/redis-db.
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+u...@googlegroups.com.

Jan-Erik Rediger

unread,
Aug 2, 2017, 1:44:27 PM8/2/17
to AlexanderB, Redis DB
then we should change the code to return _all_ options.
> >> > > email to redis-db+u...@googlegroups.com <javascript:>.
> >> > > To post to this group, send email to redi...@googlegroups.com
> >> <javascript:>.
> >> > > Visit this group at https://groups.google.com/group/redis-db.
> >> > > For more options, visit https://groups.google.com/d/optout.
> >> > >
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> Groups "Redis DB" group.
> >> > To unsubscribe from this group and stop receiving emails from it, send
> >> an email to redis-db+u...@googlegroups.com <javascript:>.
> >> > To post to this group, send email to redi...@googlegroups.com
> >> <javascript:>.
> >> > Visit this group at https://groups.google.com/group/redis-db.
> >> > For more options, visit https://groups.google.com/d/optout.
> >>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Redis DB" group.
> >> To unsubscribe from this group and stop receiving emails from it, send an
> >> email to redis-db+u...@googlegroups.com <javascript:>.
> >> To post to this group, send email to redi...@googlegroups.com
> >> <javascript:>.

hva...@gmail.com

unread,
Aug 3, 2017, 12:20:28 AM8/3/17
to Redis DB, alb...@demonware.net, jan...@fnordig.de
I suggest that CONFIG GET * returns all options, but a second argument (perhaps CONFIG GET * settable) will filter the output to have only those options that can be changed by CONFIG SET.

AlexanderB

unread,
Aug 14, 2017, 1:25:06 PM8/14/17
to Redis DB, alb...@demonware.net, jan...@fnordig.de
Having CONFIG GET * return all options, and another flag to filter out only the ones that are settable dynamically seems the best option to me as well. I'll dig a bit more into the source and see what it would take for me to add a new test and this functionality. 
Reply all
Reply to author
Forward
0 new messages