IBM Support

IJ12293: JAVA JIT PPC: CRASH IN JITED CODE ON POWER9 CPUS

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: SIGSEGV in libj9vm29.so
    .
    Stack Trace: N/A
    .
    The problem could appear in many different ways but the most
    likely symptoms include a crash in libj9vm29.so, libj9jit29.so
    or a crash inside JIT compiled code. A crash in the GC and
    incorrect behaviour is also possible.
    The issue is only possible on PPC platforms (power Linux or AIX)
    and only when running on POWER9 CPUs. When running on POWER8 or
    older CPUs this problem is not possible!
    Only Java 8 (8.0.5.0 through 8.0.5.26) can encounter this
    problem as 8.0.5.0 is the first version of Java to make use of
    POWER9 instructions.
    

Local fix

  • The problem can be avoided by preventing the JIT got using the
    "move register peep holes" optimization. This can be done by
    setting the following environment variable before starting the
    JVM.
    export TR_DisableMRPeepholes=1
    You can confirm that this option is set correctly and has taken
    effect by looking for the following message in the stderr output
    of the JVM:
    "JIT: env var TR_DisableMRPeepholes is set to 1"
    The performance effect of using this options will be minor.
    

Problem summary

  • The JIT attempts to remove "move register (mr)" instructions by
    rewriting instructions that make use of the mr target to use the
    mr source instead. The new 3-source type instructions in POWER9
    were not being correctly handled by this optimization allowing
    for these instruction to continue using the mr target register
    when they should have been rewritten to use the mr source
    register instead.
    

Problem conclusion

  • The JIT was modified such that the move register peephole
    optimization now correctly handles POWER9 type 3-source
    instructions.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR5 FP30  (8.0.5.30)
    .
    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

    IJ12293

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-12-21

  • Closed date

    2019-01-08

  • Last modified date

    2019-01-08

  • 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:
08 January 2019