From ee7e699d239484bac9fbcc2c0855116c08b840b7 Mon Sep 17 00:00:00 2001 From: Christopher Batey Date: Mon, 2 Jul 2018 12:42:28 +0100 Subject: [PATCH] Cluster sharding: Set waiting for state timeout for tests Default is 5s which means if the first Read is lost and a test ddata have any secondary nodes to query it'll timeout waiting to get the state. E.g. read being ignored due to loading durable state then never gets retries --- .../typed/MultiDcClusterShardingSpec.scala | 3 +- .../typed/MultiDcClusterSingletonSpec.scala | 4 +-- .../typed/MultiNodeTypedClusterSpec.scala | 35 ------------------- .../akka/cluster/MultiNodeClusterSpec.scala | 1 + build.sbt | 2 +- 5 files changed, 6 insertions(+), 39 deletions(-) diff --git a/akka-cluster-sharding-typed/src/multi-jvm/scala/akka/cluster/sharding/typed/MultiDcClusterShardingSpec.scala b/akka-cluster-sharding-typed/src/multi-jvm/scala/akka/cluster/sharding/typed/MultiDcClusterShardingSpec.scala index 60a170fcb3..f5b01b2201 100644 --- a/akka-cluster-sharding-typed/src/multi-jvm/scala/akka/cluster/sharding/typed/MultiDcClusterShardingSpec.scala +++ b/akka-cluster-sharding-typed/src/multi-jvm/scala/akka/cluster/sharding/typed/MultiDcClusterShardingSpec.scala @@ -10,6 +10,7 @@ import akka.cluster.sharding.typed.scaladsl.ClusterSharding import akka.cluster.typed.{ MultiDcClusterActors, MultiNodeTypedClusterSpec } import akka.remote.testkit.{ MultiNodeConfig, MultiNodeSpec } import akka.actor.testkit.typed.scaladsl.TestProbe +import akka.cluster.MultiNodeClusterSpec import akka.util.Timeout import com.typesafe.config.ConfigFactory import org.scalatest.concurrent.ScalaFutures @@ -29,7 +30,7 @@ object MultiDcClusterShardingSpecConfig extends MultiNodeConfig { retry-interval = 0.2s } """).withFallback( - MultiNodeTypedClusterSpec.clusterConfig)) + MultiNodeClusterSpec.clusterConfig)) nodeConfig(first, second)(ConfigFactory.parseString( """ diff --git a/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiDcClusterSingletonSpec.scala b/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiDcClusterSingletonSpec.scala index f5a112b703..9293d0c27d 100644 --- a/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiDcClusterSingletonSpec.scala +++ b/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiDcClusterSingletonSpec.scala @@ -6,7 +6,7 @@ package akka.cluster.typed import akka.actor.typed.Props import akka.actor.typed.scaladsl.adapter._ -import akka.cluster.MemberStatus +import akka.cluster.{ MemberStatus, MultiNodeClusterSpec } import akka.remote.testconductor.RoleName import akka.remote.testkit.{ MultiNodeConfig, MultiNodeSpec } import akka.actor.testkit.typed.scaladsl.TestProbe @@ -24,7 +24,7 @@ object MultiDcClusterSingletonSpecConfig extends MultiNodeConfig { """ akka.loglevel = DEBUG """).withFallback( - MultiNodeTypedClusterSpec.clusterConfig)) + MultiNodeClusterSpec.clusterConfig)) nodeConfig(first)(ConfigFactory.parseString( """ diff --git a/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiNodeTypedClusterSpec.scala b/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiNodeTypedClusterSpec.scala index 717ca4aa1f..2cee2f1dc4 100644 --- a/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiNodeTypedClusterSpec.scala +++ b/akka-cluster-typed/src/multi-jvm/scala/akka/cluster/typed/MultiNodeTypedClusterSpec.scala @@ -20,41 +20,6 @@ import com.typesafe.config.{ Config, ConfigFactory } import scala.concurrent.duration._ import scala.language.implicitConversions -object MultiNodeTypedClusterSpec { - def clusterConfig: Config = ConfigFactory.parseString( - s""" - akka.actor.provider = cluster - akka.actor.warn-about-java-serializer-usage = off - akka.cluster { - jmx.enabled = off - gossip-interval = 200 ms - leader-actions-interval = 200 ms - unreachable-nodes-reaper-interval = 500 ms - periodic-tasks-initial-delay = 300 ms - publish-stats-interval = 0 s # always, when it happens - failure-detector.heartbeat-interval = 500 ms - - run-coordinated-shutdown-when-down = off - } - akka.loglevel = INFO - akka.log-dead-letters = off - akka.log-dead-letters-during-shutdown = off - akka.remote { - log-remote-lifecycle-events = off - artery.advanced.flight-recorder { - enabled=on - destination=target/flight-recorder-${UUID.randomUUID().toString}.afr - } - } - akka.loggers = ["akka.testkit.TestEventListener"] - akka.test { - single-expect-default = 10 s - } - - """) - -} - trait MultiNodeTypedClusterSpec extends Suite with STMultiNodeSpec with WatchedByCoroner with FlightRecordingSupport with Matchers { self: MultiNodeSpec ⇒ diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala index a5ad96bd47..bff5ad2d51 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala @@ -51,6 +51,7 @@ object MultiNodeClusterSpec { sharding { retry-interval = 200ms + waiting-for-state-timeout = 200ms } } akka.loglevel = INFO diff --git a/build.sbt b/build.sbt index af866f2b78..cbc35ea777 100644 --- a/build.sbt +++ b/build.sbt @@ -409,7 +409,7 @@ lazy val persistenceTyped = akkaModule("akka-persistence-typed") lazy val clusterTyped = akkaModule("akka-cluster-typed") .dependsOn( actorTyped, - cluster, + cluster % "compile->compile;test->test", clusterTools, distributedData, persistence % "test->test",