Fix ShardRegion.changeMembers, #25509 (#25510)

This commit is contained in:
Patrik Nordwall 2018-08-23 17:24:46 +02:00 committed by Christopher Batey
parent 051f5f8b5a
commit 08de65f0f1

View file

@ -480,22 +480,14 @@ private[akka] class ShardRegion(
def receiveClusterEvent(evt: ClusterDomainEvent): Unit = evt match {
case MemberUp(m)
if (matchingRole(m))
changeMembers {
// replace, it's possible that the upNumber is changed
membersByAge = membersByAge.filterNot(_.uniqueAddress == m.uniqueAddress)
membersByAge += m
membersByAge
}
changeMembers(membersByAge.filterNot(_.uniqueAddress == m.uniqueAddress) + m)
case MemberRemoved(m, _)
if (m.uniqueAddress == cluster.selfUniqueAddress)
context.stop(self)
else if (matchingRole(m))
changeMembers {
// filter, it's possible that the upNumber is changed
membersByAge = membersByAge.filterNot(_.uniqueAddress == m.uniqueAddress)
membersByAge
}
changeMembers(membersByAge.filterNot(_.uniqueAddress == m.uniqueAddress))
case _: MemberEvent // these are expected, no need to warn about them