Propagate aeron system properties to forked jvm, #30601 (#30894)

This commit is contained in:
Patrik Nordwall 2021-11-16 15:33:13 +01:00 committed by GitHub
parent 0c67b741c7
commit 5d381cdc74
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View file

@ -13,7 +13,6 @@ import sbtassembly.AssemblyPlugin.autoImport._
import sbt.Keys._ import sbt.Keys._
import sbt._ import sbt._
import JdkOptions.autoImport._ import JdkOptions.autoImport._
import scala.collection.breakOut
object AkkaBuild { object AkkaBuild {
@ -211,11 +210,14 @@ object AkkaBuild {
.ifTrue(jvmGCLogOptions(JdkOptions.isJdk11orHigher, JdkOptions.isJdk8)) .ifTrue(jvmGCLogOptions(JdkOptions.isJdk11orHigher, JdkOptions.isJdk8))
.getOrElse(Nil) .getOrElse(Nil)
}, },
// all system properties passed to sbt prefixed with "akka." will be passed on to the forked jvms as is // all system properties passed to sbt prefixed with "akka." or "aeron." will be passed on to the forked jvms as is
Test / javaOptions := { Test / javaOptions := {
val base = (Test / javaOptions).value val base = (Test / javaOptions).value
val knownPrefix = Set("akka.", "aeron.")
val akkaSysProps: Seq[String] = val akkaSysProps: Seq[String] =
sys.props.filter(_._1.startsWith("akka")).map { case (key, value) => s"-D$key=$value" }(breakOut) sys.props.iterator.collect {
case (key, value) if knownPrefix.exists(pre => key.startsWith(pre)) => s"-D$key=$value"
}.toList
base ++ akkaSysProps base ++ akkaSysProps
}, },

View file

@ -51,7 +51,7 @@ object MultiNode extends AutoPlugin {
// -Dmultinode.Djava.net.preferIPv4Stack=true -Dmultinode.Xmx512m -Dmultinode.XX:MaxPermSize=256M // -Dmultinode.Djava.net.preferIPv4Stack=true -Dmultinode.Xmx512m -Dmultinode.XX:MaxPermSize=256M
// -DMultiJvm.akka.cluster.Stress.nrOfNodes=15 // -DMultiJvm.akka.cluster.Stress.nrOfNodes=15
val MultinodeJvmArgs = "multinode\\.(D|X)(.*)".r val MultinodeJvmArgs = "multinode\\.(D|X)(.*)".r
val knownPrefix = Set("akka.", "MultiJvm.") val knownPrefix = Set("akka.", "MultiJvm.", "aeron.")
val akkaProperties = System.getProperties.stringPropertyNames.asScala.toList.collect { val akkaProperties = System.getProperties.stringPropertyNames.asScala.toList.collect {
case MultinodeJvmArgs(a, b) => case MultinodeJvmArgs(a, b) =>
val value = System.getProperty("multinode." + a + b) val value = System.getProperty("multinode." + a + b)