APAR status
Closed as program error.
Error description
Error Message: A SEGSEGV is received when JIT compiling a method. . Stack Trace: libj9jit29.so}{TR_HandleInjectedBasicBlock::findAndReplaceRefere nces(TR::TreeTop*,TR::Block*,TR::Block*)} libj9jit29.so}{OMR::Block::split(TR::TreeTop*,TR::CFG*,bool,bool ,TR::ResolvedMethodSymbol*)} libj9jit29.so}{splitRuntimeGuardBlock(TR::Compilation*,TR::Block *,TR::CFG*)} libj9jit29.so}{TR_VirtualGuardHeadMerger::perform()} libj9jit29.so}{OMR::Optimizer::performOptimization(const OptimizationStrategy*,int,int,int)} libj9jit29.so}{OMR::Optimizer::performOptimization(const OptimizationStrategy*,int,int,int)} libj9jit29.so}{OMR::Optimizer::optimize()} libj9jit29.so}{OMR::Compilation::compile()} libj9jit29.so}{TR::CompilationInfoPerThreadBase::compile(J9VMThr ead*,TR::Compilation*,TR_ResolvedMethod*,T...} libj9jit29.so}{TR::CompilationInfoPerThreadBase::wrappedCompile( J9PortLibrary*,void*)} libj9prt29.so}{omrsig_protect} libj9jit29.so}{TR::CompilationInfoPerThreadBase::compile(J9VMThr ead*,TR_MethodToBeCompiled*,J9::J9SegmentP...} libj9jit29.so}{TR::CompilationInfoPerThread::processEntry(TR_Met hodToBeCompiled&,J9::J9SegmentProvider&)} libj9jit29.so}{TR::CompilationInfoPerThread::processEntries()} libj9jit29.so}{protectedCompilationThreadProc(J9PortLibrary*,TR: :CompilationInfoPerThread*)} libj9prt29.so}{omrsig_protect} libj9jit29.so}{compilationThreadProc(void*)} libj9thr29.so}{thread_wrapper} . The problem can occur with a different stack trace then what is shown in this APAR, but it should always show a crash in the compiler. We have seen this issue cause a crash in GlobalRegisterAllocator as well as VirtualGuardHeadMerger.
Local fix
The problem can be avoided by using the following java command line argument: -Xjit:disableVirtualGuardHeadMerger This option will disable the JIT optimization that has the problem. Disabling this optimization should show a minor impact on performance.
Problem summary
The JIT optimization VirtualGuardHeadMerger could corrupt the compiler's internal representation of the Java code being compiled causing the compiler to crash later on in VirtualGuardHeadMerger or some other optimization.
Problem conclusion
The JIT was modified so that VirtualGuardHeadMerger will not corrupt the internal representation. . This APAR will be fixed in the following Releases: . IBM Semeru Runtimes 21 21.0.4.0 17 17.0.12.0 11 11.0.24.0 IBM SDK, Java Technology Edition 8 SR8 FP30 (8.0.8.30) . Downloads and supplementary documentation can be found at the following locations: - For non z/OS operating systems: - IBM Semeru Runtimes, Version 11 and later https://www.ibm.com/semeru-runtimes/downloads/ - IBM SDK, Java Technology Edition, Version 8 https://www.ibm.com/support/pages/java-sdk-downloads/ - For the z/OS operating system: - Java SDK Products on z/OS https://www.ibm.com/support/pages/java-sdk-products-zos
Temporary fix
Comments
APAR Information
APAR number
IJ50938
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-04-19
Closed date
2024-08-21
Last modified date
2024-08-21
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JIT
Fixed component ID
620700124
Applicable component levels
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
22 August 2024