Thu, 21 Mar 2019 14:40:04 -0400
8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs
Reviewed-by: sspitsyn, sgehwolf
1.1 --- a/test/jdk/internal/platform/docker/MetricsMemoryTester.java Fri Aug 21 19:51:52 2020 +0100 1.2 +++ b/test/jdk/internal/platform/docker/MetricsMemoryTester.java Thu Mar 21 14:40:04 2019 -0400 1.3 @@ -64,10 +64,15 @@ 1.4 long count = Metrics.systemMetrics().getMemoryFailCount(); 1.5 1.6 // Allocate 512M of data 1.7 - long[][] longs = new long[64][]; 1.8 - for (int i = 1; i <= 64; i++) { 1.9 + byte[][] bytes = new byte[64][]; 1.10 + for (int i = 0; i < 64; i++) { 1.11 try { 1.12 - longs[i] = new long[8 * 1024 * 1024]; 1.13 + bytes[i] = new byte[8 * 1024 * 1024]; 1.14 + // Break out as soon as we see an increase in failcount 1.15 + // to avoid getting killed by the OOM killer. 1.16 + if (Metrics.systemMetrics().getMemoryFailCount() > count) { 1.17 + break; 1.18 + } 1.19 } catch (Error e) { // OOM error 1.20 break; 1.21 }
2.1 --- a/test/jdk/internal/platform/docker/TestDockerMemoryMetrics.java Fri Aug 21 19:51:52 2020 +0100 2.2 +++ b/test/jdk/internal/platform/docker/TestDockerMemoryMetrics.java Thu Mar 21 14:40:04 2019 -0400 2.3 @@ -87,6 +87,7 @@ 2.4 new DockerRunOptions(imageName, "/jdk/bin/java", "MetricsMemoryTester"); 2.5 opts.addDockerOpts("--volume", Utils.TEST_CLASSES + ":/test-classes/") 2.6 .addDockerOpts("--memory=" + value) 2.7 + .addJavaOpts("-Xmx" + value) 2.8 .addJavaOpts("-cp", "/test-classes/") 2.9 .addClassOptions("failcount"); 2.10 DockerTestUtils.dockerRunJava(opts).shouldHaveExitValue(0).shouldContain("TEST PASSED!!!");