=clu #18554 Make oldest assignment deterministic when joining

* the reported issue is fixed by the immediate leaderActions
  (moving to Up)  when joining the first node to itself
* the other changes are precautions just in case
This commit is contained in:
Patrik Nordwall 2015-10-21 07:53:12 +02:00
parent 1bacae3cac
commit 9380983d3c
9 changed files with 116 additions and 99 deletions

View file

@ -226,7 +226,7 @@ object ClusterSingletonManager {
val cluster = Cluster(context.system)
// sort by age, oldest first
val ageOrdering = Ordering.fromLessThan[Member] { (a, b) a.isOlderThan(b) }
val ageOrdering = Member.ageOrdering
var membersByAge: immutable.SortedSet[Member] = immutable.SortedSet.empty(ageOrdering)
var changes = Vector.empty[AnyRef]
@ -260,7 +260,10 @@ object ClusterSingletonManager {
def add(m: Member): Unit = {
if (matchingRole(m))
trackChange { () membersByAge += m }
trackChange { ()
membersByAge -= m // replace
membersByAge += m
}
}
def remove(m: Member): Unit = {