IBM Support

IJ20662: INCORRECT RESULTS FOR EXPRESSIONS WITH SHIFTS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

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