8215947: JVM crash with -XX:+DumpSharedSpaces
authorccheung
Thu, 03 Jan 2019 14:33:58 -0800
changeset 53170 6a25433b30ed
parent 53169 98580226126d
child 53171 3ab3cb8a8d41
8215947: JVM crash with -XX:+DumpSharedSpaces Summary: disable JIT compilation if -XX:+DumpSharedSpaces is specified by the user Reviewed-by: lfoltan, jiangli
src/hotspot/share/runtime/arguments.cpp
test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java
--- a/src/hotspot/share/runtime/arguments.cpp	Fri Dec 14 11:22:26 2018 +0100
+++ b/src/hotspot/share/runtime/arguments.cpp	Thu Jan 03 14:33:58 2019 -0800
@@ -3111,6 +3111,10 @@
       BytecodeVerificationRemote = true;
       log_info(cds)("All non-system classes will be verified (-Xverify:remote) during CDS dump time.");
     }
+
+    // Compilation is already disabled if the user specifies -Xshare:dump.
+    // Disable compilation in case user specifies -XX:+DumpSharedSpaces instead of -Xshare:dump.
+    set_mode_flags(_int);
   }
   if (UseSharedSpaces && patch_mod_javabase) {
     no_shared_spaces("CDS is disabled when " JAVA_BASE_NAME " module is patched.");
--- a/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java	Fri Dec 14 11:22:26 2018 +0100
+++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java	Thu Jan 03 14:33:58 2019 -0800
@@ -47,6 +47,13 @@
         OutputAnalyzer out = CDSTestUtils.executeAndLog(pb, "SharedArchiveFile");
         CDSTestUtils.checkDump(out);
 
+        // -XX:+DumpSharedSpaces should behave the same as -Xshare:dump
+        pb = ProcessTools.createJavaProcessBuilder(true,
+                                "-XX:SharedArchiveFile=./SharedArchiveFile.jsa",
+                                "-XX:+DumpSharedSpaces");
+        out = CDSTestUtils.executeAndLog(pb, "SharedArchiveFile");
+        CDSTestUtils.checkDump(out);
+
         pb = ProcessTools.createJavaProcessBuilder(true,
                               "-XX:SharedArchiveFile=./SharedArchiveFile.jsa",
                               "-Xshare:on", "-version");