mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 08:38:27 -05:00
Cluster: FAIL messages from unknown senders are handled better.
Previously the event was not logged but instead the node reported an unknown packet type received.
This commit is contained in:
parent
7970ebd80a
commit
abe81781ae
@ -1154,20 +1154,26 @@ int clusterProcessPacket(clusterLink *link) {
|
|||||||
/* Update the cluster state if needed */
|
/* Update the cluster state if needed */
|
||||||
if (update_state) clusterUpdateState();
|
if (update_state) clusterUpdateState();
|
||||||
if (update_config) clusterSaveConfigOrDie();
|
if (update_config) clusterSaveConfigOrDie();
|
||||||
} else if (type == CLUSTERMSG_TYPE_FAIL && sender) {
|
} else if (type == CLUSTERMSG_TYPE_FAIL) {
|
||||||
clusterNode *failing;
|
clusterNode *failing;
|
||||||
|
|
||||||
failing = clusterLookupNode(hdr->data.fail.about.nodename);
|
if (sender) {
|
||||||
if (failing && !(failing->flags & (REDIS_NODE_FAIL|REDIS_NODE_MYSELF)))
|
failing = clusterLookupNode(hdr->data.fail.about.nodename);
|
||||||
{
|
if (failing && !(failing->flags & (REDIS_NODE_FAIL|REDIS_NODE_MYSELF)))
|
||||||
|
{
|
||||||
|
redisLog(REDIS_NOTICE,
|
||||||
|
"FAIL message received from %.40s about %.40s",
|
||||||
|
hdr->sender, hdr->data.fail.about.nodename);
|
||||||
|
failing->flags |= REDIS_NODE_FAIL;
|
||||||
|
failing->fail_time = time(NULL);
|
||||||
|
failing->flags &= ~REDIS_NODE_PFAIL;
|
||||||
|
clusterUpdateState();
|
||||||
|
clusterSaveConfigOrDie();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
redisLog(REDIS_NOTICE,
|
redisLog(REDIS_NOTICE,
|
||||||
"FAIL message received from %.40s about %.40s",
|
"Ignoring FAIL message from unknonw node %.40s about %.40s",
|
||||||
hdr->sender, hdr->data.fail.about.nodename);
|
hdr->sender, hdr->data.fail.about.nodename);
|
||||||
failing->flags |= REDIS_NODE_FAIL;
|
|
||||||
failing->fail_time = time(NULL);
|
|
||||||
failing->flags &= ~REDIS_NODE_PFAIL;
|
|
||||||
clusterUpdateState();
|
|
||||||
clusterSaveConfigOrDie();
|
|
||||||
}
|
}
|
||||||
} else if (type == CLUSTERMSG_TYPE_PUBLISH) {
|
} else if (type == CLUSTERMSG_TYPE_PUBLISH) {
|
||||||
robj *channel, *message;
|
robj *channel, *message;
|
||||||
|
Loading…
Reference in New Issue
Block a user