=clu #3600 Disable Cluster assertInvariants checks by default
* asserts can be enabled by system property 'akka.cluster.assert=on'
This commit is contained in:
parent
9456a081b7
commit
cc66daad48
4 changed files with 11 additions and 13 deletions
|
|
@ -39,6 +39,15 @@ object Cluster extends ExtensionId[Cluster] with ExtensionIdProvider {
|
||||||
override def lookup = Cluster
|
override def lookup = Cluster
|
||||||
|
|
||||||
override def createExtension(system: ExtendedActorSystem): Cluster = new Cluster(system)
|
override def createExtension(system: ExtendedActorSystem): Cluster = new Cluster(system)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* INTERNAL API
|
||||||
|
*/
|
||||||
|
private[cluster] final val isAssertInvariantsEnabled: Boolean =
|
||||||
|
System.getProperty("akka.cluster.assert", "off").toLowerCase match {
|
||||||
|
case "on" | "true" ⇒ true
|
||||||
|
case _ ⇒ false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -255,8 +255,7 @@ private[cluster] case class ClusterHeartbeatSenderState private (
|
||||||
ending: Set[Address] = Set.empty,
|
ending: Set[Address] = Set.empty,
|
||||||
heartbeatRequest: Map[Address, Deadline] = Map.empty) {
|
heartbeatRequest: Map[Address, Deadline] = Map.empty) {
|
||||||
|
|
||||||
// TODO can be disabled as optimization
|
if (Cluster.isAssertInvariantsEnabled) assertInvariants()
|
||||||
assertInvariants()
|
|
||||||
|
|
||||||
private def assertInvariants(): Unit = {
|
private def assertInvariants(): Unit = {
|
||||||
val currentAndEnding = current.intersect(ending)
|
val currentAndEnding = current.intersect(ending)
|
||||||
|
|
|
||||||
|
|
@ -63,8 +63,7 @@ private[cluster] case class Gossip(
|
||||||
overview: GossipOverview = GossipOverview(),
|
overview: GossipOverview = GossipOverview(),
|
||||||
version: VectorClock = VectorClock()) { // vector clock version
|
version: VectorClock = VectorClock()) { // vector clock version
|
||||||
|
|
||||||
// TODO can be disabled as optimization
|
if (Cluster.isAssertInvariantsEnabled) assertInvariants()
|
||||||
assertInvariants()
|
|
||||||
|
|
||||||
private def assertInvariants(): Unit = {
|
private def assertInvariants(): Unit = {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,15 +60,6 @@ class GossipSpec extends WordSpec with MustMatchers {
|
||||||
merged2.overview.reachability.allUnreachable must be(merged1.overview.reachability.allUnreachable)
|
merged2.overview.reachability.allUnreachable must be(merged1.overview.reachability.allUnreachable)
|
||||||
}
|
}
|
||||||
|
|
||||||
"not have live members with wrong status" in intercept[IllegalArgumentException] {
|
|
||||||
// b2 is Removed
|
|
||||||
Gossip(members = SortedSet(a2, b2))
|
|
||||||
}
|
|
||||||
|
|
||||||
"not have non cluster members in seen table" in intercept[IllegalArgumentException] {
|
|
||||||
Gossip(members = SortedSet(a1, e1)).seen(a1.uniqueAddress).seen(e1.uniqueAddress).seen(b1.uniqueAddress)
|
|
||||||
}
|
|
||||||
|
|
||||||
"have leader as first member based on ordering, except Exiting status" in {
|
"have leader as first member based on ordering, except Exiting status" in {
|
||||||
Gossip(members = SortedSet(c2, e2)).leader must be(Some(c2.uniqueAddress))
|
Gossip(members = SortedSet(c2, e2)).leader must be(Some(c2.uniqueAddress))
|
||||||
Gossip(members = SortedSet(c3, e2)).leader must be(Some(e2.uniqueAddress))
|
Gossip(members = SortedSet(c3, e2)).leader must be(Some(e2.uniqueAddress))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue