Merge pull request #21247 from akka/wip-21236-oldest-back-again-patriknw

Fix regression in Cluster Singleton
This commit is contained in:
Patrik Nordwall 2016-08-23 19:09:41 +02:00 committed by GitHub
commit b9592cbc6b

View file

@ -608,6 +608,9 @@ class ClusterSingletonManager(
// already oldest // already oldest
stay stay
case Some(a) if !selfExited && removed.contains(a) case Some(a) if !selfExited && removed.contains(a)
// The member removal was not completed and the old removed node is considered
// oldest again. Safest is to terminate the singleton instance and goto Younger.
// This node will become oldest again when the other is removed again.
gotoHandingOver(singleton, singletonTerminated, None) gotoHandingOver(singleton, singletonTerminated, None)
case Some(a) case Some(a)
// send TakeOver request in case the new oldest doesn't know previous oldest // send TakeOver request in case the new oldest doesn't know previous oldest
@ -683,7 +686,9 @@ class ClusterSingletonManager(
if (removed.contains(cluster.selfUniqueAddress)) { if (removed.contains(cluster.selfUniqueAddress)) {
logInfo("Self removed, stopping ClusterSingletonManager") logInfo("Self removed, stopping ClusterSingletonManager")
stop() stop()
} else } else if (handOverTo.isEmpty)
goto(Younger) using YoungerData(None)
else
goto(End) using EndData goto(End) using EndData
} }