Use embedded media driver for StressSpec (#27037)

* Use embedded media driver for StressSpec

The current setup starts a media driver for each JVM in the same
directory which is caused the cnc file to be courruped in some way
so that the client in Akka timed out waiting for it to be initialized.

This test is disabled for Artery, see
https://github.com/akka/akka/issues/21810 so all it does is startup
and then end the test right away.

Will look at enabling the test again separately.

Fixes #27030
This commit is contained in:
Christopher Batey 2019-11-25 15:58:58 +00:00 committed by Arnout Engelen
parent b52271da1c
commit bc2d3aa4db
2 changed files with 5 additions and 11 deletions

View file

@ -10,9 +10,9 @@ import java.util.function.Consumer
import scala.annotation.tailrec
import scala.util.control.NonFatal
import akka.remote.RemoteSettings
import akka.remote.artery.ArterySettings
import akka.remote.artery.ArterySettings.AeronUpd
import akka.remote.artery.aeron.TaskRunner
import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
@ -27,11 +27,11 @@ object SharedMediaDriverSupport {
private val mediaDriver = new AtomicReference[Option[MediaDriver]](None)
def loadArterySettings(config: MultiNodeConfig): ArterySettings =
(new RemoteSettings(ConfigFactory.load(config.config))).Artery
new RemoteSettings(ConfigFactory.load(config.config)).Artery
def startMediaDriver(config: MultiNodeConfig): Unit = {
val arterySettings = loadArterySettings(config)
if (arterySettings.Enabled) {
if (arterySettings.Enabled && arterySettings.Transport == AeronUpd) {
val aeronDir = arterySettings.Advanced.Aeron.AeronDirectoryName
require(aeronDir.nonEmpty, "aeron-dir must be defined")
@ -48,7 +48,7 @@ object SharedMediaDriverSupport {
})
catch {
case NonFatal(e) =>
println(e.getMessage)
println("Exception checking isDriverActive: " + e.getMessage)
false
}
if (active) false

View file

@ -129,8 +129,6 @@ private[cluster] object StressMultiJvmSpec extends MultiNodeConfig {
akka.remote.artery.advanced.aeron {
idle-cpu-level = 1
embedded-media-driver = off
aeron-dir = "target/aeron-StressSpec"
}
akka.actor.default-dispatcher.fork-join-executor {
@ -678,11 +676,7 @@ class StressMultiJvmNode12 extends StressSpec
class StressMultiJvmNode13 extends StressSpec
abstract class StressSpec
extends MultiNodeSpec({
// Aeron media driver must be started before ActorSystem
SharedMediaDriverSupport.startMediaDriver(StressMultiJvmSpec)
StressMultiJvmSpec
})
extends MultiNodeSpec(StressMultiJvmSpec)
with MultiNodeClusterSpec
with BeforeAndAfterEach
with ImplicitSender {