OpenJDK / jdk / jdk
changeset 52702:10c6e9066819
8214217: [TESTBUG] runtime/appcds/LotsOfClasses.java failed with fragmented heap
Summary: Improve the fragmentation error message. Set java heap size in LotsOfClasses.java.
Reviewed-by: iklam, ccheung
author | jiangli |
---|---|
date | Tue, 27 Nov 2018 17:53:17 -0500 |
parents | c724619944f1 |
children | e7fdc9d9c376 |
files | src/hotspot/share/memory/filemap.cpp test/hotspot/jtreg/runtime/appcds/LotsOfClasses.java |
diffstat | 2 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/share/memory/filemap.cpp Tue Nov 27 13:39:57 2018 -0500 +++ b/src/hotspot/share/memory/filemap.cpp Tue Nov 27 17:53:17 2018 -0500 @@ -683,7 +683,10 @@ int arr_len = heap_mem == NULL ? 0 : heap_mem->length(); if(arr_len > max_num_regions) { fail_stop("Unable to write archive heap memory regions: " - "number of memory regions exceeds maximum due to fragmentation"); + "number of memory regions exceeds maximum due to fragmentation." + "Please increase java heap size " + "(current MaxHeapSize is " SIZE_FORMAT ", InitialHeapSize is " SIZE_FORMAT ").", + MaxHeapSize, InitialHeapSize); } size_t total_size = 0;
--- a/test/hotspot/jtreg/runtime/appcds/LotsOfClasses.java Tue Nov 27 13:39:57 2018 -0500 +++ b/test/hotspot/jtreg/runtime/appcds/LotsOfClasses.java Tue Nov 27 17:53:17 2018 -0500 @@ -57,9 +57,16 @@ opts.addSuffix("--add-modules"); opts.addSuffix("ALL-SYSTEM"); opts.addSuffix("-Xlog:hashtables"); + opts.addSuffix("-Xms500m"); + opts.addSuffix("-Xmx500m"); OutputAnalyzer out = CDSTestUtils.createArchive(opts); - CDSTestUtils.checkDump(out); + try { + CDSTestUtils.checkDump(out); + } catch (java.lang.RuntimeException re) { + out.shouldContain( + "number of memory regions exceeds maximum due to fragmentation"); + } } static void findAllClasses(ArrayList<String> list) throws Throwable {