IBM Support

IJ49047: JAVA JIT: REORDERING CODE WITH A CALL TO CURRENTTIMEMILLIS() CAN RESULT IN INACCURATE RESULTS

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: The difference between two calls to
    currentTimeMillis() would result in impossible results.
    .
    Stack Trace: N/A
    .
    The problem can only occur when running the Java JVM under zOS.
    The issue is not possible on other platforms including zLinux.
    

Local fix

  • The problem can be avoided by using the following java command
    line parameter:
    -Xjit:disableTreeSimplification
    Using this options will have some effect on the performance of
    the application.
    

Problem summary

  • The JIT converts a call to currentTimeMillis() into a a special
    System-Z instruction, but in doing so, the internal
    representation of the code was setup in an incorrect way that
    allowed another JIT optimization to move the code around. This
    might result in a delayed execution of the Z instruction by
    moving it after other calls. This delay might cause incorrect
    and unexpected time calculations.
    

Problem conclusion

  • The JIT was modified so that a methods internal representation
    is correct after currentTimeMillis() conversion on zOS
    preventing any incorrect code motion.
    .
    This APAR will be fixed in the following Releases:
    .
    IBM Semeru Runtimes
       11              11.0.22.0
       17              17.0.10.0
    IBM SDK, Java Technology Edition
       8    SR8 FP20  (8.0.8.20)
    .
    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

    IJ49047

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-10-27

  • Closed date

    2023-10-28

  • Last modified date

    2023-10-28

  • 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:
30 October 2023