Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Merge "Bug-1828 - Raft apply state missing index log should be of type warn and not...
[controller.git]
/
opendaylight
/
md-sal
/
sal-akka-raft
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
raft
/
behaviors
/
AbstractRaftActorBehavior.java
diff --git
a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java
b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java
index 0a553b40fd59aab555f258f897a2154830afd1c8..86447509d7b28a4df5559dfac8d02a02c0baa2b8 100644
(file)
--- a/
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java
+++ b/
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java
@@
-127,6
+127,9
@@
public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
protected RaftState requestVote(ActorRef sender,
RequestVote requestVote) {
protected RaftState requestVote(ActorRef sender,
RequestVote requestVote) {
+
+ context.getLogger().debug(requestVote.toString());
+
boolean grantVote = false;
// Reply false if term < currentTerm (§5.1)
boolean grantVote = false;
// Reply false if term < currentTerm (§5.1)
@@
-301,7
+304,8
@@
public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
*
* @param index a log index that is known to be committed
*/
*
* @param index a log index that is known to be committed
*/
- protected void applyLogToStateMachine(long index) {
+ protected void applyLogToStateMachine(final long index) {
+ long newLastApplied = context.getLastApplied();
// Now maybe we apply to the state machine
for (long i = context.getLastApplied() + 1;
i < index + 1; i++) {
// Now maybe we apply to the state machine
for (long i = context.getLastApplied() + 1;
i < index + 1; i++) {
@@
-317,16
+321,21
@@
public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
context.getReplicatedLog().get(i);
if (replicatedLogEntry != null) {
context.getReplicatedLog().get(i);
if (replicatedLogEntry != null) {
+ // Send a local message to the local RaftActor (it's derived class to be
+ // specific to apply the log to it's index)
actor().tell(new ApplyState(clientActor, identifier,
replicatedLogEntry), actor());
actor().tell(new ApplyState(clientActor, identifier,
replicatedLogEntry), actor());
+ newLastApplied = i;
} else {
} else {
- context.getLogger().error(
- "Missing index " + i + " from log. Cannot apply state.");
+ //if one index is not present in the log, no point in looping
+ // around as the rest wont be present either
+ context.getLogger().warning(
+ "Missing index {} from log. Cannot apply state. Ignoring {} to {}", i, i, index );
+ break;
}
}
}
}
- // Send a local message to the local RaftActor (it's derived class to be
- // specific to apply the log to it's index)
- context.setLastApplied(index);
+ context.getLogger().debug("Setting last applied to {}", newLastApplied);
+ context.setLastApplied(newLastApplied);
}
protected Object fromSerializableMessage(Object serializable){
}
protected Object fromSerializableMessage(Object serializable){