diff --git a/.github/workflows/build-test-prValidation.yml b/.github/workflows/build-test-prValidation.yml index 082d665981..1b91aa346d 100644 --- a/.github/workflows/build-test-prValidation.yml +++ b/.github/workflows/build-test-prValidation.yml @@ -156,7 +156,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.0-builds.yml b/.github/workflows/nightly-1.0-builds.yml index b47d8e8a1f..9206384e1e 100644 --- a/.github/workflows/nightly-1.0-builds.yml +++ b/.github/workflows/nightly-1.0-builds.yml @@ -48,7 +48,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -104,7 +104,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.1-builds.yml b/.github/workflows/nightly-1.1-builds.yml index d0bcaae854..90b909960e 100644 --- a/.github/workflows/nightly-1.1-builds.yml +++ b/.github/workflows/nightly-1.1-builds.yml @@ -48,7 +48,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -105,7 +105,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.2-builds.yml b/.github/workflows/nightly-1.2-builds.yml index ce8d5d66d5..c36dc6abdf 100644 --- a/.github/workflows/nightly-1.2-builds.yml +++ b/.github/workflows/nightly-1.2-builds.yml @@ -48,7 +48,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -105,7 +105,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.3-builds.yml b/.github/workflows/nightly-1.3-builds.yml index a324d3fe5a..1344a3f28a 100644 --- a/.github/workflows/nightly-1.3-builds.yml +++ b/.github/workflows/nightly-1.3-builds.yml @@ -47,7 +47,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -104,7 +104,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.4-builds.yml b/.github/workflows/nightly-1.4-builds.yml index 2d92cfdc65..b53ffe114b 100644 --- a/.github/workflows/nightly-1.4-builds.yml +++ b/.github/workflows/nightly-1.4-builds.yml @@ -47,7 +47,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -104,7 +104,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.5-builds.yml b/.github/workflows/nightly-1.5-builds.yml index ea9447107a..9c9e2f999a 100644 --- a/.github/workflows/nightly-1.5-builds.yml +++ b/.github/workflows/nightly-1.5-builds.yml @@ -47,7 +47,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -104,7 +104,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.6-builds.yml b/.github/workflows/nightly-1.6-builds.yml index 0453f6d6d6..01ff3061ff 100644 --- a/.github/workflows/nightly-1.6-builds.yml +++ b/.github/workflows/nightly-1.6-builds.yml @@ -47,7 +47,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -104,7 +104,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-1.7-builds.yml b/.github/workflows/nightly-1.7-builds.yml index 4e311f1a5b..a1b3066403 100644 --- a/.github/workflows/nightly-1.7-builds.yml +++ b/.github/workflows/nightly-1.7-builds.yml @@ -49,7 +49,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -106,7 +106,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-builds-aeron.yml b/.github/workflows/nightly-builds-aeron.yml index 54a817c2d2..a0a5e91562 100644 --- a/.github/workflows/nightly-builds-aeron.yml +++ b/.github/workflows/nightly-builds-aeron.yml @@ -57,7 +57,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.transport=aeron-udp \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/nightly-builds.yml b/.github/workflows/nightly-builds.yml index 547656a4fc..f5734f07df 100644 --- a/.github/workflows/nightly-builds.yml +++ b/.github/workflows/nightly-builds.yml @@ -40,7 +40,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.test.sigar=true \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ @@ -96,7 +96,7 @@ jobs: # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.github/workflows/timing-tests.yml b/.github/workflows/timing-tests.yml index 3ece02a150..64e75a33c7 100644 --- a/.github/workflows/timing-tests.yml +++ b/.github/workflows/timing-tests.yml @@ -50,7 +50,7 @@ jobs: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- sbt \ - -Djava.security.egd=file:/dev/./urandom \ + -Djava.security.egd=file:/dev/urandom \ -Dpekko.cluster.assert=on \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ diff --git a/.jvmopts-ci b/.jvmopts-ci index d984212d94..8936b33075 100644 --- a/.jvmopts-ci +++ b/.jvmopts-ci @@ -10,6 +10,8 @@ -XX:+UseCompressedOops -XX:MetaspaceSize=512M -XX:-ClassUnloadingWithConcurrentMark --Djava.security.egd=file:/dev/./urandom +# Non-blocking seed source. Keep the plain path: `/dev/./urandom` switches the +# default SecureRandom away from NativePRNG (to DRBG, or SHA1PRNG on JDK 8). +-Djava.security.egd=file:/dev/urandom -Dpekko.ci-server=true -Dio.netty.leakDetection.level=PARANOID diff --git a/project/PekkoBuild.scala b/project/PekkoBuild.scala index a74535152c..b57b09eb63 100644 --- a/project/PekkoBuild.scala +++ b/project/PekkoBuild.scala @@ -212,8 +212,11 @@ object PekkoBuild { "-XX:MaxGCPauseMillis=300", // nio direct memory limit for artery/aeron (probably) "-XX:MaxDirectMemorySize=256m", - // faster random source - "-Djava.security.egd=file:/dev/./urandom") + // Non-blocking seed source. Keep the plain path: `/dev/./urandom` does + // not match SunEntries.URL_DEV_URANDOM, which switches the default + // SecureRandom away from NativePRNG (to DRBG, or SHA1PRNG on JDK 8), + // so CI would stop exercising the algorithm users get. + "-Djava.security.egd=file:/dev/urandom") defaults ++ CliOptions.runningOnCi