diff --git a/akka-cluster/src/main/scala/akka/cluster/sbr/SplitBrainResolver.scala b/akka-cluster/src/main/scala/akka/cluster/sbr/SplitBrainResolver.scala index 27d5d9a14d..681dbd8f53 100644 --- a/akka-cluster/src/main/scala/akka/cluster/sbr/SplitBrainResolver.scala +++ b/akka-cluster/src/main/scala/akka/cluster/sbr/SplitBrainResolver.scala @@ -269,9 +269,9 @@ import akka.remote.artery.ThisActorSystemQuarantinedEvent case MemberWeaklyUp(m) => addWeaklyUp(m) case MemberUp(m) => addUp(m) case MemberLeft(m) => leaving(m) + case MemberExited(m) => exited(m) case UnreachableMember(m) => unreachableMember(m) case MemberDowned(m) => unreachableMember(m) - case MemberExited(m) => unreachableMember(m) case ReachableMember(m) => reachableMember(m) case ReachabilityChanged(r) => reachabilityChanged(r) case MemberRemoved(m, _) => remove(m) @@ -473,7 +473,7 @@ import akka.remote.artery.ThisActorSystemQuarantinedEvent else ""}, " + s"[${strategy.unreachable.size}] unreachable of [${strategy.members.size}] members" + indirectlyConnectedLogMessage + - s", all members in DC [${strategy.allMembersInDC.mkString(", ")}], full reachability status: ${strategy.reachability}" + + s", all members in DC [${strategy.allMembersInDC.mkString(", ")}], full reachability status: [${strategy.reachability}]" + unreachableDataCentersLogMessage) } @@ -570,6 +570,15 @@ import akka.remote.artery.ThisActorSystemQuarantinedEvent } } + def exited(m: Member): Unit = { + if (selfDc == m.dataCenter) { + log.debug("SBR exited [{}]", m) + mutateMemberInfo(resetStable = true) { () => + strategy.add(m) + } + } + } + def addJoining(m: Member): Unit = { if (selfDc == m.dataCenter) { log.debug("SBR add Joining/WeaklyUp [{}]", m)