A node can populate a slot if a message from a trusted slot is received claiming ownership of this slot, that is currently empty or served by a node in FAIL state. However this feature was broken since calling clusterAddSlot() was not enough as the slot bit is already set in the node that pong us. We need to directly alter the table. This commit fixes the issue.

This commit is contained in:
antirez 2011-10-05 17:40:02 +02:00
parent dbf6bca431
commit 9465d83efd

View File

@ -637,7 +637,7 @@ int clusterProcessPacket(clusterLink *link) {
if (server.cluster.slots[j] == NULL ||
server.cluster.slots[j]->flags & REDIS_NODE_FAIL)
{
clusterAddSlot(sender,j);
server.cluster.slots[j] = sender;
update_state = update_config = 1;
}
}