Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
BUG 8618: Log leader status when rejecting request
[controller.git]
/
opendaylight
/
md-sal
/
sal-akka-raft
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
raft
/
RaftActor.java
diff --git
a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
index 70a0b86952a3ea22e04921860ae7a2bd5ef97dc1..9d970f1695ddb422c9a364428f5f9214387282de 100644
(file)
--- a/
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
+++ b/
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
@@
-121,8
+121,6
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
private RaftActorServerConfigurationSupport serverConfigurationSupport;
private RaftActorServerConfigurationSupport serverConfigurationSupport;
- private RaftActorLeadershipTransferCohort leadershipTransferInProgress;
-
private boolean shuttingDown;
protected RaftActor(String id, Map<String, String> peerAddresses,
private boolean shuttingDown;
protected RaftActor(String id, Map<String, String> peerAddresses,
@@
-309,7
+307,7
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
+ ". Follower is not ready to become leader")),
getSelf());
}
+ ". Follower is not ready to become leader")),
getSelf());
}
- }, message.getRequestedFollowerId());
+ }, message.getRequestedFollowerId()
, RaftActorLeadershipTransferCohort.USE_DEFAULT_LEADER_TIMEOUT
);
}
private boolean possiblyHandleBehaviorMessage(final Object message) {
}
private boolean possiblyHandleBehaviorMessage(final Object message) {
@@
-328,30
+326,31
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
return false;
}
return false;
}
- private void initiateLeadershipTransfer(final RaftActorLeadershipTransferCohort.OnComplete onComplete) {
- initiateLeadershipTransfer(onComplete, null);
- }
-
private void initiateLeadershipTransfer(final RaftActorLeadershipTransferCohort.OnComplete onComplete,
private void initiateLeadershipTransfer(final RaftActorLeadershipTransferCohort.OnComplete onComplete,
-
final String followerId
) {
+
@Nullable final String followerId, long newLeaderTimeoutInMillis
) {
LOG.debug("{}: Initiating leader transfer", persistenceId());
LOG.debug("{}: Initiating leader transfer", persistenceId());
+ RaftActorLeadershipTransferCohort leadershipTransferInProgress = context.getRaftActorLeadershipTransferCohort();
if (leadershipTransferInProgress == null) {
leadershipTransferInProgress = new RaftActorLeadershipTransferCohort(this, followerId);
if (leadershipTransferInProgress == null) {
leadershipTransferInProgress = new RaftActorLeadershipTransferCohort(this, followerId);
+ leadershipTransferInProgress.setNewLeaderTimeoutInMillis(newLeaderTimeoutInMillis);
leadershipTransferInProgress.addOnComplete(new RaftActorLeadershipTransferCohort.OnComplete() {
@Override
public void onSuccess(ActorRef raftActorRef) {
leadershipTransferInProgress.addOnComplete(new RaftActorLeadershipTransferCohort.OnComplete() {
@Override
public void onSuccess(ActorRef raftActorRef) {
-
leadershipTransferInProgress = null
;
+
context.setRaftActorLeadershipTransferCohort(null)
;
}
@Override
public void onFailure(ActorRef raftActorRef) {
}
@Override
public void onFailure(ActorRef raftActorRef) {
-
leadershipTransferInProgress = null
;
+
context.setRaftActorLeadershipTransferCohort(null)
;
}
});
leadershipTransferInProgress.addOnComplete(onComplete);
}
});
leadershipTransferInProgress.addOnComplete(onComplete);
+
+ context.setRaftActorLeadershipTransferCohort(leadershipTransferInProgress);
leadershipTransferInProgress.init();
leadershipTransferInProgress.init();
+
} else {
LOG.debug("{}: prior leader transfer in progress - adding callback", persistenceId());
leadershipTransferInProgress.addOnComplete(onComplete);
} else {
LOG.debug("{}: prior leader transfer in progress - adding callback", persistenceId());
leadershipTransferInProgress.addOnComplete(onComplete);
@@
-387,7
+386,7
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
LOG.debug("{}: leader transfer failed - sending PoisonPill", persistenceId());
raftActorRef.tell(PoisonPill.getInstance(), raftActorRef);
}
LOG.debug("{}: leader transfer failed - sending PoisonPill", persistenceId());
raftActorRef.tell(PoisonPill.getInstance(), raftActorRef);
}
- });
+ }
, null, TimeUnit.MILLISECONDS.convert(2, TimeUnit.SECONDS)
);
} else {
pauseLeader(new TimedRunnable(context.getConfigParams().getElectionTimeOutInterval(), this) {
@Override
} else {
pauseLeader(new TimedRunnable(context.getConfigParams().getElectionTimeOutInterval(), this) {
@Override
@@
-517,6
+516,8
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
onLeaderChanged(lastValidLeaderId, currentBehavior.getLeaderId());
onLeaderChanged(lastValidLeaderId, currentBehavior.getLeaderId());
+ RaftActorLeadershipTransferCohort leadershipTransferInProgress =
+ context.getRaftActorLeadershipTransferCohort();
if (leadershipTransferInProgress != null) {
leadershipTransferInProgress.onNewLeader(currentBehavior.getLeaderId());
}
if (leadershipTransferInProgress != null) {
leadershipTransferInProgress.onNewLeader(currentBehavior.getLeaderId());
}
@@
-654,7
+655,8
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
&& !shuttingDown && !isLeadershipTransferInProgress();
}
&& !shuttingDown && !isLeadershipTransferInProgress();
}
- private boolean isLeadershipTransferInProgress() {
+ protected boolean isLeadershipTransferInProgress() {
+ RaftActorLeadershipTransferCohort leadershipTransferInProgress = context.getRaftActorLeadershipTransferCohort();
return leadershipTransferInProgress != null && leadershipTransferInProgress.isTransferring();
}
return leadershipTransferInProgress != null && leadershipTransferInProgress.isTransferring();
}
@@
-908,7
+910,7
@@
public abstract class RaftActor extends AbstractUntypedPersistentActor {
initializeBehavior();
}
}
initializeBehavior();
}
}
- });
+ }
, null, RaftActorLeadershipTransferCohort.USE_DEFAULT_LEADER_TIMEOUT
);
}
}
}
}