8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs

Thu, 21 Mar 2019 14:40:04 -0400

author
bobv
date
Thu, 21 Mar 2019 14:40:04 -0400
changeset 14167
3f6ca2dd1b23
parent 14166
5370bb093690
child 14168
8a367e717840

8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs
Reviewed-by: sspitsyn, sgehwolf

test/jdk/internal/platform/docker/MetricsMemoryTester.java file | annotate | diff | comparison | revisions
test/jdk/internal/platform/docker/TestDockerMemoryMetrics.java file | annotate | diff | comparison | revisions
     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!!!");

mercurial