mirror of
https://github.com/fluencelabs/redis
synced 2025-03-18 16:40:50 +00:00
Cluster: always increment the configEpoch in SETNODE after import.
Removed a stale conditional preventing the configEpoch from incrementing after the import in certain conditions. Since the master got a new slot it should always claim a new configuration.
This commit is contained in:
parent
a1349728ea
commit
44f7afe28a
@ -3166,8 +3166,6 @@ void clusterCommand(redisClient *c) {
|
||||
if (n == myself &&
|
||||
server.cluster->importing_slots_from[slot])
|
||||
{
|
||||
clusterNode *old_owner =
|
||||
server.cluster->importing_slots_from[slot];
|
||||
/* This slot was manually migrated, set this node configEpoch
|
||||
* to a new epoch so that the new version can be propagated
|
||||
* by the cluster.
|
||||
@ -3175,11 +3173,9 @@ void clusterCommand(redisClient *c) {
|
||||
* FIXME: the new version should be agreed otherwise a race
|
||||
* is possible if while a manual resharding is in progress
|
||||
* the master is failed over by a slave. */
|
||||
if (old_owner->configEpoch > myself->configEpoch) {
|
||||
server.cluster->currentEpoch++;
|
||||
myself->configEpoch = server.cluster->currentEpoch;
|
||||
clusterDoBeforeSleep(CLUSTER_TODO_FSYNC_CONFIG);
|
||||
}
|
||||
server.cluster->currentEpoch++;
|
||||
myself->configEpoch = server.cluster->currentEpoch;
|
||||
clusterDoBeforeSleep(CLUSTER_TODO_FSYNC_CONFIG);
|
||||
server.cluster->importing_slots_from[slot] = NULL;
|
||||
}
|
||||
clusterDelSlot(slot);
|
||||
|
Loading…
x
Reference in New Issue
Block a user