APAR status
Closed as program error.
Error description
Error Message: A method using a combination of shift and arithmetic 'or' expressions started producing incorrect results after having been called many times. The incorrect behaviour continued until the JVM was restarted. . Stack Trace: N/A .
Local fix
The problem can be avoided by setting the following operating system environment variable before starting the JVM: TR_DisableROLSimplification=1
Problem summary
There is a commonly used idiom in Java to rotate the bits in a numeric value. It typically looks something like the following for the case of rotating a 32 bit value by 8 bits: x = x << 24 | x >>> 8; Since this is often a performance critical calculation that can be represented simply in the instructions sets of many processors, the JIT recognises the pattern and optimises it for optimal encoding. Unfortunately, the optimisation failed to correctly test the bit length of the variable being rotated, and as a result would incorrectly transform expressions that would be a valid rotation of a 32 bit variable when the variable was in fact 64 bits.
Problem conclusion
The optimisation has been fixed to avoid the ambiguity between different sizes of the target variable. For more details, see https://github.com/eclipse/omr/pull/4471 . This APAR will be fixed in the following Java Releases: 8 SR6 FP5 (8.0.6.5) . 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
IJ20662
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-11-01
Closed date
2019-11-04
Last modified date
2019-11-06
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:
06 November 2019