Change cluster MemberEvents to only be published on convergence. See #2692

Conflicts:
	akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterJmx.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterReadView.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala
	akka-docs/rst/cluster/cluster-usage-java.rst
	akka-docs/rst/cluster/cluster-usage-scala.rst
	akka-kernel/src/main/dist/bin/akka-cluster
This commit is contained in:
Björn Antonsson 2012-11-27 18:07:37 +01:00
parent 0c9ad2f791
commit a03460329d
21 changed files with 327 additions and 304 deletions

View file

@ -114,7 +114,6 @@ abstract class TransitionSpec
startClusterNode()
awaitCond(clusterView.isSingletonCluster)
awaitMemberStatus(myself, Joining)
awaitCond(clusterView.convergence)
leaderActions()
awaitMemberStatus(myself, Up)
}
@ -133,14 +132,13 @@ abstract class TransitionSpec
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Joining)
awaitCond(seenLatestGossip == Set(first, second))
clusterView.convergence must be(true)
}
enterBarrier("convergence-joining-2")
runOn(leader(first, second)) {
leaderActions()
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
awaitMemberStatus(second, Joining)
}
enterBarrier("leader-actions-2")
@ -150,7 +148,6 @@ abstract class TransitionSpec
awaitMemberStatus(second, Up)
awaitCond(seenLatestGossip == Set(first, second))
awaitMemberStatus(first, Up)
clusterView.convergence must be(true)
}
enterBarrier("after-2")
@ -163,10 +160,7 @@ abstract class TransitionSpec
}
runOn(second, third) {
// gossip chat from the join will synchronize the views
awaitMembers(first, second, third)
awaitMemberStatus(third, Joining)
awaitCond(seenLatestGossip == Set(second, third))
clusterView.convergence must be(false)
}
enterBarrier("third-joined-second")
@ -177,7 +171,6 @@ abstract class TransitionSpec
awaitMemberStatus(third, Joining)
awaitMemberStatus(second, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
first gossipTo third
@ -187,7 +180,6 @@ abstract class TransitionSpec
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Joining)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
enterBarrier("convergence-joining-3")
@ -196,16 +188,15 @@ abstract class TransitionSpec
leaderActions()
awaitMemberStatus(first, Up)
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Up)
awaitMemberStatus(third, Joining)
}
enterBarrier("leader-actions-3")
// leader gossipTo first non-leader
leader(first, second, third) gossipTo nonLeader(first, second, third).head
runOn(nonLeader(first, second, third).head) {
awaitMemberStatus(third, Up)
awaitMemberStatus(third, Joining)
awaitCond(seenLatestGossip == Set(leader(first, second, third), myself))
clusterView.convergence must be(false)
}
// first non-leader gossipTo the other non-leader
@ -217,7 +208,6 @@ abstract class TransitionSpec
runOn(nonLeader(first, second, third).tail.head) {
awaitMemberStatus(third, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
// first non-leader gossipTo the leader
@ -227,7 +217,6 @@ abstract class TransitionSpec
awaitMemberStatus(second, Up)
awaitMemberStatus(third, Up)
awaitCond(seenLatestGossip == Set(first, second, third))
clusterView.convergence must be(true)
}
enterBarrier("after-3")
@ -247,12 +236,10 @@ abstract class TransitionSpec
runOn(first, third) {
awaitCond(clusterView.unreachableMembers.contains(Member(second, Up)))
awaitCond(!clusterView.convergence)
}
runOn(first) {
cluster.down(second)
awaitMemberStatus(second, Down)
}
enterBarrier("after-second-down")
@ -263,7 +250,6 @@ abstract class TransitionSpec
awaitCond(clusterView.unreachableMembers.contains(Member(second, Down)))
awaitMemberStatus(second, Down)
awaitCond(seenLatestGossip == Set(first, third))
clusterView.convergence must be(true)
}
enterBarrier("after-6")