diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/JoinTwoClustersSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/JoinTwoClustersSpec.scala index 4bbe703405..6a7ebcee86 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/JoinTwoClustersSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/JoinTwoClustersSpec.scala @@ -38,13 +38,18 @@ abstract class JoinTwoClustersSpec extends MultiNodeSpec(JoinTwoClustersMultiJvm testConductor.enter("after") } - val a1Address = node(a1).address - val b1Address = node(b1).address - val c1Address = node(c1).address + lazy val a1Address = node(a1).address + lazy val b1Address = node(b1).address + lazy val c1Address = node(c1).address "Three different clusters (A, B and C)" must { "be able to 'elect' a single leader after joining (A -> B)" taggedAs LongRunningTest in { + // make sure that the node-to-join is started before other join + runOn(a1, b1, c1) { + cluster + } + testConductor.enter("first-started") runOn(a1, a2) { cluster.join(a1Address) diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/MembershipChangeListenerSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/MembershipChangeListenerSpec.scala index 64019c102c..dc915912ee 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/MembershipChangeListenerSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/MembershipChangeListenerSpec.scala @@ -33,13 +33,19 @@ abstract class MembershipChangeListenerSpec extends MultiNodeSpec(MembershipChan testConductor.enter("after") } + lazy val firstAddress = node(first).address + lazy val secondAddress = node(second).address + "A set of connected cluster systems" must { - val firstAddress = node(first).address - val secondAddress = node(second).address - "(when two systems) after cluster convergence updates the membership table then all MembershipChangeListeners should be triggered" taggedAs LongRunningTest in { + // make sure that the node-to-join is started before other join + runOn(first) { + cluster + } + testConductor.enter("first-started") + runOn(first, second) { cluster.join(firstAddress) val latch = TestLatch() diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeMembershipSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeMembershipSpec.scala index f96265ac5a..232d6ca0e7 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeMembershipSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeMembershipSpec.scala @@ -31,14 +31,20 @@ abstract class NodeMembershipSpec extends MultiNodeSpec(NodeMembershipMultiJvmSp testConductor.enter("after") } - val firstAddress = node(first).address - val secondAddress = node(second).address - val thirdAddress = node(third).address + lazy val firstAddress = node(first).address + lazy val secondAddress = node(second).address + lazy val thirdAddress = node(third).address "A set of connected cluster systems" must { "(when two systems) start gossiping to each other so that both systems gets the same gossip info" taggedAs LongRunningTest in { + // make sure that the node-to-join is started before other join + runOn(first) { + cluster + } + testConductor.enter("first-started") + runOn(first, second) { cluster.join(firstAddress) awaitCond(cluster.latestGossip.members.size == 2) diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeStartupSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeStartupSpec.scala index 65cd7891a9..fcbcce746f 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeStartupSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeStartupSpec.scala @@ -29,8 +29,8 @@ abstract class NodeStartupSpec extends MultiNodeSpec(NodeStartupMultiJvmSpec) wi testConductor.enter("after") } - val firstAddress = node(first).address - val secondAddress = node(second).address + lazy val firstAddress = node(first).address + lazy val secondAddress = node(second).address "A first cluster node with a 'node-to-join' config set to empty string (singleton cluster)" must {