Merge pull request #7330 from liuzhen/unstable
fix clusters mixing accidentally by gossip
This commit is contained in:
commit
fa3e801afe
@ -1463,7 +1463,10 @@ void clusterProcessGossipSection(clusterMsg *hdr, clusterLink *link) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* If it's not in NOADDR state and we don't have it, we
|
/* If it's not in NOADDR state and we don't have it, we
|
||||||
* start a handshake process against this IP/PORT pairs.
|
* add it to our trusted dict with exact nodeid and flag.
|
||||||
|
* Note that we cannot simply start a handshake against
|
||||||
|
* this IP/PORT pairs, since IP/PORT can be reused already,
|
||||||
|
* otherwise we risk joining another cluster.
|
||||||
*
|
*
|
||||||
* Note that we require that the sender of this gossip message
|
* Note that we require that the sender of this gossip message
|
||||||
* is a well known node in our cluster, otherwise we risk
|
* is a well known node in our cluster, otherwise we risk
|
||||||
@ -1472,7 +1475,12 @@ void clusterProcessGossipSection(clusterMsg *hdr, clusterLink *link) {
|
|||||||
!(flags & CLUSTER_NODE_NOADDR) &&
|
!(flags & CLUSTER_NODE_NOADDR) &&
|
||||||
!clusterBlacklistExists(g->nodename))
|
!clusterBlacklistExists(g->nodename))
|
||||||
{
|
{
|
||||||
clusterStartHandshake(g->ip,ntohs(g->port),ntohs(g->cport));
|
clusterNode *node;
|
||||||
|
node = createClusterNode(g->nodename, flags);
|
||||||
|
memcpy(node->ip,g->ip,NET_IP_STR_LEN);
|
||||||
|
node->port = ntohs(g->port);
|
||||||
|
node->cport = ntohs(g->cport);
|
||||||
|
clusterAddNode(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user