RFR: Exit gracefully when Shenandoah is not supported
Aleksey Shipilev
shade at redhat.com
Tue Mar 21 11:01:28 UTC 2017
This affects only 9. It will crash like this:
$ build/linux-x86-normal-server-release/images/jdk/bin/java -XX:+UseShenandoahGC
-version
OpenJDK Server VM warning: -XX:+UseShenandoahGC not supported in this VM
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (universe.cpp:745), pid=18763, tid=18764
# Error: ShouldNotReachHere()
The trouble is that JDK 9 code is missing UNSUPPORTED_GC_OPTION macro, which
used to default to Serial GC in cases like this. Let's just exit gracefully:
diff -r a7f9abea2a6d src/share/vm/runtime/arguments.cpp
--- a/src/share/vm/runtime/arguments.cpp Tue Mar 21 11:32:00 2017 +0100
+++ b/src/share/vm/runtime/arguments.cpp Tue Mar 21 12:00:55 2017 +0100
@@ -2053,7 +2053,7 @@
void Arguments::set_shenandoah_gc_flags() {
#if !(defined AARCH64 || defined AMD64)
- UNSUPPORTED_OPTION(UseShenandoahGC);
+ vm_exit_during_initialization("Shenandoah GC is not supported on this
platform.");
#endif
#ifdef _LP64
$ build/linux-x86-normal-server-release/images/jdk/bin/java -XX:+UseShenandoahGC
-version
Error occurred during initialization of VM
Shenandoah GC is not supported on this platform.
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list