Cluster: check that configEpoch never goes back.
Since there are ways to alter the configEpoch outside of the failover procedure (for exampel CLUSTER SET-CONFIG-EPOCH and via the configEpoch collision resolution algorithm), make always sure, before replacing our configEpoch with a new one, that it is greater than the current one.
This commit is contained in:
parent
b732d42a80
commit
cff2c3661a
@ -2516,7 +2516,8 @@ void clusterHandleSlaveFailover(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 3) Update my configEpoch to the epoch of the election. */
|
/* 3) Update my configEpoch to the epoch of the election. */
|
||||||
myself->configEpoch = server.cluster->failover_auth_epoch;
|
if (myself->configEpoch < server.cluster->failover_auth_epoch)
|
||||||
|
myself->configEpoch = server.cluster->failover_auth_epoch;
|
||||||
|
|
||||||
/* 4) Update state and save config. */
|
/* 4) Update state and save config. */
|
||||||
clusterUpdateState();
|
clusterUpdateState();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user