Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
503fd229
Commit
503fd229
authored
Dec 19, 2018
by
artix
Browse files
Cluster Manager: enable --cluster-replace also for 'fix' command.
parent
f07205e4
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/redis-cli.c
View file @
503fd229
...
@@ -3149,48 +3149,47 @@ static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source,
...
@@ -3149,48 +3149,47 @@ static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source,
* - In other cases (ie. reshard), proceed only if the user
* - In other cases (ie. reshard), proceed only if the user
* launched the command with the --cluster-replace option.*/
* launched the command with the --cluster-replace option.*/
if (is_busy) {
if (is_busy) {
clusterManagerLogWarn("\n*** Target key exists, "
clusterManagerLogWarn("\n*** Target key exists\n");
"checking values...\n");
if (!do_replace) {
list *diffs = listCreate();
clusterManagerLogWarn("*** Checking key values on "
success = clusterManagerCompareKeysValues(source,
"both nodes...\n");
target, reply, diffs);
list *diffs = listCreate();
if (!success && (do_fix || !do_replace)) {
success = clusterManagerCompareKeysValues(source,
listRelease(diffs);
target, reply, diffs);
clusterManagerLogErr("*** Value check failed!\n");
if (!success) {
goto next;
clusterManagerLogErr("*** Value check failed!\n");
}
listRelease(diffs);
if (listLength(diffs) > 0 && (do_fix || !do_replace)) {
goto next;
success = 0;
clusterManagerLogErr(
"*** Found %d key(s) in both source node and "
"target node having different values.\n"
" Source node: %s:%d\n"
" Target node: %s:%d\n"
" Keys(s):\n",
listLength(diffs),
source->ip, source->port,
target->ip, target->port);
listIter dli;
listNode *dln;
listRewind(diffs, &dli);
while((dln = listNext(&dli)) != NULL) {
char *k = dln->value;
clusterManagerLogErr(" - %s\n", k);
}
}
clusterManagerLogErr("Please fix the above key(s) "
if (listLength(diffs) > 0) {
"manually ");
success = 0;
if (do_fix)
clusterManagerLogErr(
clusterManagerLogErr("and try again!\n");
"*** Found %d key(s) in both source node and "
else {
"target node having different values.\n"
clusterManagerLogErr("or relaunch the command "
" Source node: %s:%d\n"
" Target node: %s:%d\n"
" Keys(s):\n",
listLength(diffs),
source->ip, source->port,
target->ip, target->port);
listIter dli;
listNode *dln;
listRewind(diffs, &dli);
while((dln = listNext(&dli)) != NULL) {
char *k = dln->value;
clusterManagerLogErr(" - %s\n", k);
}
clusterManagerLogErr("Please fix the above key(s) "
"manually and try again "
"or relaunch the command \n"
"with --cluster-replace "
"with --cluster-replace "
"option to force key "
"option to force key "
"overriding.\n");
"overriding.\n");
listRelease(diffs);
goto next;
}
}
listRelease(diffs);
listRelease(diffs);
goto next;
}
}
listRelease(diffs);
clusterManagerLogWarn("*** Replacing target keys...\n");
clusterManagerLogWarn("*** Replacing target keys...\n");
}
}
freeReplyObject(migrate_reply);
freeReplyObject(migrate_reply);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment