JVM crashes on Big Endian platforms (PPC64 BE (linux + AIX) and SPARC) were observed while running JCK api tests since JDK-8209189 was pushed.
Examples:
dependencyContext.cpp:164 assert(!find_stale_entries()) failed: inconsistent info
SIGSEGV in DependencyContext::remove_dependent_nmethod(nmethod*,bool)+0x8c
Root cause seems to be the implementation of IsUnloadingUnion which is incorrect for Big Endian.
The size of IsUnloadingStruct was observed as 4 bytes on many platforms. In this case, the bit fields and the _value field are disjoint which breaks the intended usage.
Examples:
dependencyContext.cpp:164 assert(!find_stale_entries()) failed: inconsistent info
SIGSEGV in DependencyContext::remove_dependent_nmethod(nmethod*,bool)+0x8c
Root cause seems to be the implementation of IsUnloadingUnion which is incorrect for Big Endian.
The size of IsUnloadingStruct was observed as 4 bytes on many platforms. In this case, the bit fields and the _value field are disjoint which breaks the intended usage.
- relates to
-
JDK-8209189 Make CompiledMethod::do_unloading more concurrent
-
- Resolved
-
-
JDK-8213565 Crash in DependencyContext::remove_dependent_nmethod
-
- Closed
-