-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: 25, 26
-
Component/s: hotspot
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (nmethod.cpp:1504), pid=4058106, tid=4064886
# guarantee(static_cast<int>(_oops_size) == align_up(code_buffer->total_oop_size(), oopSize)) failed: failed: 12272 != 77808
#
# JRE version: Java(TM) SE Runtime Environment Oracle GraalVM 25.0.1+8.1 (25.0.1+8) (build 25.0.1+8-LTS-jvmci-b01)
# Java VM: Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25.0.1+8.1 (25.0.1+8-LTS-jvmci-b01, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xe27a02] nmethod::nmethod(Method*, CompilerType, int, int, int, int, int, unsigned char*, CodeOffsets*, int, DebugInformationRecorder*, Dependencies*, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, CompLevel, char*, int, JVMCINMethodData*)+0x582
#
This occurs when JVMCI installs code that has too many embedded object references, triggering this limit check: https://github.com/openjdk/jdk/blob/677798529c7f4a553177d5fd4367d4ca0c0cf286/src/hotspot/share/code/nmethod.cpp#L1308
Instead of a fatal error, it would be preferable for the CHECKED_CAST calls in nmethod.cpp to raise a Java exception.
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (nmethod.cpp:1504), pid=4058106, tid=4064886
# guarantee(static_cast<int>(_oops_size) == align_up(code_buffer->total_oop_size(), oopSize)) failed: failed: 12272 != 77808
#
# JRE version: Java(TM) SE Runtime Environment Oracle GraalVM 25.0.1+8.1 (25.0.1+8) (build 25.0.1+8-LTS-jvmci-b01)
# Java VM: Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25.0.1+8.1 (25.0.1+8-LTS-jvmci-b01, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xe27a02] nmethod::nmethod(Method*, CompilerType, int, int, int, int, int, unsigned char*, CodeOffsets*, int, DebugInformationRecorder*, Dependencies*, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, CompLevel, char*, int, JVMCINMethodData*)+0x582
#
This occurs when JVMCI installs code that has too many embedded object references, triggering this limit check: https://github.com/openjdk/jdk/blob/677798529c7f4a553177d5fd4367d4ca0c0cf286/src/hotspot/share/code/nmethod.cpp#L1308
Instead of a fatal error, it would be preferable for the CHECKED_CAST calls in nmethod.cpp to raise a Java exception.
- relates to
-
JDK-8355034 [JVMCI] assert(static_cast<int>(_jvmci_data_size) == align_up(compiler->is_jvmci() ? jvmci_data->size() : 0, oopSize)) failed: failed: 104 != 16777320
-
- Resolved
-
-
JDK-8331087 Move immutable nmethod data from CodeCache
-
- Resolved
-