提交 969a4f1d 编写于 作者: A antirez

Cluster: replica migration should only work for masters serving slots.

上级 cb92a1ef
......@@ -2264,7 +2264,7 @@ void clusterHandleSlaveMigration(int max_slaves) {
if (nodeIsSlave(node) || nodeFailed(node)) continue;
okslaves = clusterCountNonFailingSlaves(node);
if (okslaves == 0 && target == NULL) target = node;
if (okslaves == 0 && target == NULL && node->numslots > 0) target = node;
if (okslaves == max_slaves) {
for (j = 0; j < node->numslaves; j++) {
if (memcmp(node->slaves[j]->name,
......@@ -2487,7 +2487,7 @@ void clusterCron(void) {
if (nodeIsSlave(myself) && nodeIsMaster(node) && !nodeFailed(node)) {
int okslaves = clusterCountNonFailingSlaves(node);
if (okslaves == 0) orphaned_masters++;
if (okslaves == 0 && node->numslots > 0) orphaned_masters++;
if (okslaves > max_slaves) max_slaves = okslaves;
if (nodeIsSlave(myself) && myself->slaveof == node)
this_slaves = okslaves;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册