8226462: [TESTBUG] runtime/appcds/sharedStrings/SysDictCrash.java failed with Cannot dump shared archive
Add a CDS log statement in arguments.cpp. The test catches RuntimeException duing dumping and checks if the log statement is in the stdout. Reviewed-by: iklam, dholmes
This commit is contained in:
parent
5629241827
commit
5c5126f5ee
@ -1815,6 +1815,10 @@ void Arguments::set_heap_size() {
|
|||||||
// was not specified.
|
// was not specified.
|
||||||
if (reasonable_max > max_coop_heap) {
|
if (reasonable_max > max_coop_heap) {
|
||||||
if (FLAG_IS_ERGO(UseCompressedOops) && override_coop_limit) {
|
if (FLAG_IS_ERGO(UseCompressedOops) && override_coop_limit) {
|
||||||
|
log_info(cds)("UseCompressedOops and UseCompressedClassPointers have been disabled due to"
|
||||||
|
" max heap " SIZE_FORMAT " > compressed oop heap " SIZE_FORMAT ". "
|
||||||
|
"Please check the setting of MaxRAMPercentage %5.2f."
|
||||||
|
,(size_t)reasonable_max, (size_t)max_coop_heap, MaxRAMPercentage);
|
||||||
FLAG_SET_ERGO(UseCompressedOops, false);
|
FLAG_SET_ERGO(UseCompressedOops, false);
|
||||||
FLAG_SET_ERGO(UseCompressedClassPointers, false);
|
FLAG_SET_ERGO(UseCompressedClassPointers, false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -53,7 +53,22 @@ public class SysDictCrash {
|
|||||||
"-Xshare:dump",
|
"-Xshare:dump",
|
||||||
"-showversion", "-Xlog:cds,cds+hashtables"));
|
"-showversion", "-Xlog:cds,cds+hashtables"));
|
||||||
|
|
||||||
TestCommon.checkDump(TestCommon.executeAndLog(dumpPb, "dump"));
|
boolean continueTest = true;
|
||||||
|
OutputAnalyzer output = TestCommon.executeAndLog(dumpPb, "dump");
|
||||||
|
try {
|
||||||
|
TestCommon.checkDump(output);
|
||||||
|
} catch (java.lang.RuntimeException re) {
|
||||||
|
if (!output.getStdout().contains("UseCompressedOops and UseCompressedClassPointers have been disabled due to")) {
|
||||||
|
throw re;
|
||||||
|
} else {
|
||||||
|
System.out.println("Shared archive was not created due to UseCompressedOops and UseCompressedClassPointers have been disabled.");
|
||||||
|
continueTest = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!continueTest) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ProcessBuilder runPb = ProcessTools.createJavaProcessBuilder(true,
|
ProcessBuilder runPb = ProcessTools.createJavaProcessBuilder(true,
|
||||||
TestCommon.concat(vmOptionsPrefix,
|
TestCommon.concat(vmOptionsPrefix,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user