summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/config.c15
-rw-r--r--tests/unit/introspection.tcl23
2 files changed, 28 insertions, 10 deletions
diff --git a/src/config.c b/src/config.c
index 9856af3c0..c714b1994 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1171,18 +1171,13 @@ struct rewriteConfigState *rewriteConfigReadOldFile(char *path) {
* Append the line and populate the option -> line numbers map. */
rewriteConfigAppendLine(state,line);
- /* Translate options using the word "slave" to the corresponding name
- * "replica", before adding such option to the config name -> lines
- * mapping. */
- char *p = strstr(argv[0],"slave");
- if (p) {
- sds alt = sdsempty();
- alt = sdscatlen(alt,argv[0],p-argv[0]);
- alt = sdscatlen(alt,"replica",7);
- alt = sdscatlen(alt,p+5,strlen(p+5));
+ /* If this is a alias config, replace it with the original name. */
+ standardConfig *s_conf = lookupConfig(argv[0]);
+ if (s_conf && s_conf->flags & ALIAS_CONFIG) {
sdsfree(argv[0]);
- argv[0] = alt;
+ argv[0] = sdsnew(s_conf->alias);
}
+
/* If this is sentinel config, we use sentinel "sentinel <config>" as option
to avoid messing up the sequence. */
if (server.sentinel_mode && argc > 1 && !strcasecmp(argv[0],"sentinel")) {
diff --git a/tests/unit/introspection.tcl b/tests/unit/introspection.tcl
index 2bee01e7c..9b5575d75 100644
--- a/tests/unit/introspection.tcl
+++ b/tests/unit/introspection.tcl
@@ -594,3 +594,26 @@ test {CONFIG REWRITE handles rename-command properly} {
}
} {} {external:skip}
+test {CONFIG REWRITE handles alias config properly} {
+ start_server {tags {"introspection"} overrides {hash-max-listpack-entries 20 hash-max-ziplist-entries 21}} {
+ assert_equal [r config get hash-max-listpack-entries] {hash-max-listpack-entries 21}
+ assert_equal [r config get hash-max-ziplist-entries] {hash-max-ziplist-entries 21}
+ r config set hash-max-listpack-entries 100
+
+ r config rewrite
+ restart_server 0 true false
+
+ assert_equal [r config get hash-max-listpack-entries] {hash-max-listpack-entries 100}
+ }
+ # test the order doesn't matter
+ start_server {tags {"introspection"} overrides {hash-max-ziplist-entries 20 hash-max-listpack-entries 21}} {
+ assert_equal [r config get hash-max-listpack-entries] {hash-max-listpack-entries 21}
+ assert_equal [r config get hash-max-ziplist-entries] {hash-max-ziplist-entries 21}
+ r config set hash-max-listpack-entries 100
+
+ r config rewrite
+ restart_server 0 true false
+
+ assert_equal [r config get hash-max-listpack-entries] {hash-max-listpack-entries 100}
+ }
+} {} {external:skip}