APAR status
Closed as program error.
Error description
Error Message: A segmentation error in code that has been compiled by the Java JIT compiler is reported intermittently. . Stack Trace: N/A .
Local fix
The problem can be worked around by specify the option -Xjit:disableEscapeAnalysis. Specifying this option might have an effect on program performance.
Problem summary
One optimization of the Java JIT compiler is known as Escape Analysis. Under this optimization, the compiler identifies Java objects whose duration is brief, and it allocates them on the run-time stack rather than the Java heap in order to improve the run-time performance of the program. Such an object might be allocated on the run-time stack as a contiguous object, or if the entire object is not needed, as the individual fields of the original object. For each object whose individual fields will be allocated on the run-time stack, Escape Analysis also analyzes the generated code for any checks that the compiler might have generated of whether the original object was an instance of a class that overrides the finalize() method inherited from java.lang.Object. Such a check is not needed for an object whose individual fields will be allocated on the run-time stack as the object as a whole doesn't actually exist - Escape Analysis attempts to remove those checks. In some circumstances, however, an optimization might have been applied to the code that checks whether an object was an instance of a class that overrides the finalize() method, causing Escape Analysis to fail to recognize and remove that check. The check depends on the address of the object, which is now a null reference due to the optimization, triggering the crash.
Problem conclusion
The problem was fixed by adjusting the pattern Escape Analysis uses to recognize generated code that checks whether an object was an instance of a class that overrides the finalize() method. This change to the pattern allows Escape Analysis to recognize the check regardless of whether an optimization was applied to that check. . This APAR will be fixed in the following Java Releases: 8 SR5 FP31 (8.0.5.31) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Temporary fix
Comments
APAR Information
APAR number
IJ14950
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-03-22
Closed date
2019-03-22
Last modified date
2019-03-22
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":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
22 March 2019