diff --git a/akka-cluster/src/main/resources/reference.conf b/akka-cluster/src/main/resources/reference.conf index 606ad1c54b..5eb6be7df7 100644 --- a/akka-cluster/src/main/resources/reference.conf +++ b/akka-cluster/src/main/resources/reference.conf @@ -62,7 +62,9 @@ akka { # If this is set to "off", the leader will not move 'Joining' members to 'Up' during a network # split. This feature allows the leader to accept 'Joining' members to be 'WeaklyUp' # so they become part of the cluster even during a network split. The leader will - # move 'WeaklyUp' members to 'Up' status once convergence has been reached. + # move `Joining` members to 'WeaklyUp' after 3 rounds of 'leader-actions-interval' + # without convergence. + # The leader will move 'WeaklyUp' members to 'Up' status once convergence has been reached. allow-weakly-up-members = on # The roles of this member. List of strings, e.g. roles = ["A", "B"]. diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala index b24b1249c2..bac9750ccd 100644 --- a/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala +++ b/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala @@ -1005,10 +1005,10 @@ private[cluster] class ClusterCoreDaemon(publisher: ActorRef) extends Actor with leaderActionCounter = 0 leaderActionsOnConvergence() } else { - if (cluster.settings.AllowWeaklyUpMembers) + leaderActionCounter += 1 + if (cluster.settings.AllowWeaklyUpMembers && leaderActionCounter >= 3) moveJoiningToWeaklyUp() - leaderActionCounter += 1 if (leaderActionCounter == firstNotice || leaderActionCounter % periodicNotice == 0) logInfo( "Leader can currently not perform its duties, reachability status: [{}], member status: [{}]",