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.
|
||||
if (reasonable_max > max_coop_heap) {
|
||||
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(UseCompressedClassPointers, false);
|
||||
} 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.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -53,7 +53,22 @@ public class SysDictCrash {
|
||||
"-Xshare:dump",
|
||||
"-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,
|
||||
TestCommon.concat(vmOptionsPrefix,
|
||||
|
Loading…
Reference in New Issue
Block a user