-
Bug
-
Resolution: Fixed
-
P4
-
8, 11, 15, 16
-
b23
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8269858 | 11.0.13 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
There are many tests in tier1 that fail with Zero, because they supply -XX:+TieredCompilation, and that makes VM code believe it runs in "mixed" mode.
Can be reproduced trivially by running anything with -XX:+TieredCompilation. Then Zero fails when runtime asks it to produce a native wrapper for MH intrinsics. That code is normally protected by Arguments::is_interpreter_only.
Method* SystemDictionary::find_method_handle_intrinsic(vmIntrinsics::ID iid,
Symbol* signature,
TRAPS) {
...
if (!Arguments::is_interpreter_only()) { // <--- checks here
// Generate a compiled form of the MH intrinsic.
AdapterHandlerLibrary::create_native_wrapper(m); // <--- fails through here
}
...
sharedRuntime_zero.cpp:
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
const methodHandle& method,
int compile_id,
BasicType *sig_bt,
VMRegPair *regs,
BasicType ret_type,
address critical_entry) {
ShouldNotCallThis(); // <--- crashes here
return NULL;
}
$ build/linux-x86_64-zero-fastdebug/images/jdk/bin/java -XX:+TieredCompilation
OpenJDK 64-Bit Zero VM warning: -XX:+TieredCompilation not supported in this VM
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/sharedRuntime_zero.cpp:80
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/shade/trunks/jdk/src/hotspot/cpu/zero/sharedRuntime_zero.cpp:80), pid=404967, tid=404968
# Error: ShouldNotCall()
#
# JRE version: OpenJDK Runtime Environment (16.0) (fastdebug build 16-internal+0-adhoc.shade.jdk)
# Java VM: OpenJDK 64-Bit Zero VM (fastdebug 16-internal+0-adhoc.shade.jdk, mixed mode, serial gc, linux-amd64)
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/shade/trunks/jdk/core.404967)
#
# An error report file with more information is saved as:
# /home/shade/trunks/jdk/hs_err_pid404967.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Can be reproduced trivially by running anything with -XX:+TieredCompilation. Then Zero fails when runtime asks it to produce a native wrapper for MH intrinsics. That code is normally protected by Arguments::is_interpreter_only.
Method* SystemDictionary::find_method_handle_intrinsic(vmIntrinsics::ID iid,
Symbol* signature,
TRAPS) {
...
if (!Arguments::is_interpreter_only()) { // <--- checks here
// Generate a compiled form of the MH intrinsic.
AdapterHandlerLibrary::create_native_wrapper(m); // <--- fails through here
}
...
sharedRuntime_zero.cpp:
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
const methodHandle& method,
int compile_id,
BasicType *sig_bt,
VMRegPair *regs,
BasicType ret_type,
address critical_entry) {
ShouldNotCallThis(); // <--- crashes here
return NULL;
}
$ build/linux-x86_64-zero-fastdebug/images/jdk/bin/java -XX:+TieredCompilation
OpenJDK 64-Bit Zero VM warning: -XX:+TieredCompilation not supported in this VM
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/sharedRuntime_zero.cpp:80
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/shade/trunks/jdk/src/hotspot/cpu/zero/sharedRuntime_zero.cpp:80), pid=404967, tid=404968
# Error: ShouldNotCall()
#
# JRE version: OpenJDK Runtime Environment (16.0) (fastdebug build 16-internal+0-adhoc.shade.jdk)
# Java VM: OpenJDK 64-Bit Zero VM (fastdebug 16-internal+0-adhoc.shade.jdk, mixed mode, serial gc, linux-amd64)
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/shade/trunks/jdk/core.404967)
#
# An error report file with more information is saved as:
# /home/shade/trunks/jdk/hs_err_pid404967.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
- backported by
-
JDK-8269858 Zero: VM should know it runs in interpreter-only mode
- Resolved
- relates to
-
JDK-8273335 compiler/blackhole tests should not run with interpreter-only VMs
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/c61cfb55
-
Commit openjdk/jdk/f0eeca90
-
Review openjdk/jdk11u-dev/93
-
Review openjdk/jdk/985
(1 links to)