mirror of https://gitee.com/bigwinds/arangodb
raft bug. leader ship cannot be rendered to higher term and lower index.
This commit is contained in:
parent
be51564141
commit
c7f8046e48
|
@ -254,11 +254,16 @@ bool Agent::recvAppendEntriesRPC(
|
||||||
MUTEX_LOCKER(mutexLocker, _ioLock);
|
MUTEX_LOCKER(mutexLocker, _ioLock);
|
||||||
|
|
||||||
if (this->term() > term) {
|
if (this->term() > term) {
|
||||||
LOG_TOPIC(WARN, Logger::AGENCY) << "I have a higher term than RPC caller.";
|
if (leaderCommitIndex >= _lastCommitIndex) {
|
||||||
return false;
|
_constituent.follow(term);
|
||||||
|
} else {
|
||||||
|
LOG_TOPIC(WARN, Logger::AGENCY) << "I have a higher term than RPC caller.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_constituent.vote(term, leaderId, prevIndex, prevTerm, true)) {
|
if (!_constituent.vote(term, leaderId, prevIndex, prevTerm, true)) {
|
||||||
|
LOG_TOPIC(WARN, Logger::AGENCY) << "Not voting for " << leaderId;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -529,6 +529,13 @@ function agencyTestSuite () {
|
||||||
var res = writeAgency([[{"/bumms":{"op":"set","new":"fallera"}, "/bummsfallera": {"op":"set","new":"lalalala"}}]]);
|
var res = writeAgency([[{"/bumms":{"op":"set","new":"fallera"}, "/bummsfallera": {"op":"set","new":"lalalala"}}]]);
|
||||||
assertEqual(res.statusCode, 200);
|
assertEqual(res.statusCode, 200);
|
||||||
assertEqual(readAndCheck([["/bumms", "/bummsfallera"]]), [{bumms:"fallera", bummsfallera: "lalalala"}]);
|
assertEqual(readAndCheck([["/bumms", "/bummsfallera"]]), [{bumms:"fallera", bummsfallera: "lalalala"}]);
|
||||||
|
},
|
||||||
|
|
||||||
|
testThousand: function() {
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < 1000; i++) {
|
||||||
|
writeAndCheck([[{x:12}]]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue