APAR status
Closed as program error.
Error description
Error Message: SIGSEGV inside JIT compiled code . Stack Trace: N/A . The issue effect all IBM JVM (OpenJ9) supported platforms. It is mostly likely to cause a problem in AOT compiled bodies that are then loaded in to a different JVM instance, but can also cause problems in cases where the reflection API is used to modify the contents of static final fields.
Local fix
The problem can be avoided using the following java command line options: -Xjit:disableLookahead,disableGlobalVP -Xaot:disableLookahead,disableGlobalVPeGlobalVP The -Xjit options above are for normal non-AOT (non-cached) compiles and are unlikely to be required since the issue is far more likely with AOT (cached) compiles which is addressed by the "-Xaot" option above. These options (particularly the disableGlobalVP option) will have a measurable effect on performance of around 10% in most cases. The disableLookahead option will likely have no effect in most cases since the optimization is very rarely used already. The performance effect will be felt more for normal (-Xjit) opti then when using just the AOT (-Xaot) options.
Problem summary
The JIT was inspecting heap objects pointed to by static final fields and using that information to hard code some values that would otherwise have been runtime queries against the object (i.e. array length checks). This would happen in some rare cases when compiling for AOT, which could cause issues if static final fields are initialized differently depending on JVM launch conditions. For non-AOT compiles this could still be a problem if the fields value is modified using the reflection API after compiling the method.
Problem conclusion
The JIT was modified to remove cases where static final field inspection is used for AOT compiles and limit its use in non-AOT compiles to cases where we have in place mitigation techniques for when the contents of a static final field is modified through means like the reflection API. . This APAR will be fixed in the following Releases: . IBM SDK, Java Technology Edition 8 SR8 FP5 (8.0.8.5) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available maintenance can be found at: https://www.ibm.com/support/pages/java-sdk
Temporary fix
Comments
APAR Information
APAR number
IJ44596
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2022-12-13
Closed date
2022-12-14
Last modified date
2023-06-14
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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]
Document Information
Modified date:
14 June 2023