IV14296: JAVA JIT - EXECUTING UNLOADED METHODS

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: Crash in the VM's getOriginalROMMethod() method
    when executing getStackTrace()
    Other symptoms are possible as the problem allows the execution
    of code from an unloaded method using a 'this' pointer of an
    incompatible type.
    .
    Stack Trace: {libj9vm24.so}{getOriginalROMMethod}
    
    {libjclscar_24.so}{getStackTrace}
    {libjclscar_24.so}{java_lang_J9VMInternals_getStackTrace}
    .
    The problem can only occur on PowerPC (AIX or LinuxPPC). Only
    the "default" 64bit JVM can experience a crash due to this
    problem. If the -Xcompressedrefs option was used then the
    problem can not possibly result in a crash or any other issue.
    

Local fix

  • The only way to avoid the problem is to use the compressedrefs
    JVM or the 32bit JVM. The compressedrefs JVM can be used by
    specifying the command line argument -Xcompressedrefs. Using the
    compressedrefs JVM is very unlikely to cause a performance
    regression, in fact, it is likely to show a performance
    improvement over the default 64bit JVM.
    

Problem summary

  • The JIT fails to properly patch a reference to a class that is
    being unloaded. If the memory space used by the unloaded class
    is reused to load a new class, and the new class is of the same
    class hierarchy as the unloaded class, then the code of the
    unloaded class could be executed when a reference to an object
    of the new class is passed to a JIT compiled method who had
    inlined a method from the unloaded class.
    

Problem conclusion

  • This defect will be fixed in:
    
    6.0.1 SR2
    6.0.0 SR11
    7.0.0 SR1
    .
    The JIT was modified so that it correctly patches class
    references such that it is impossible for a patched reference to
    be mistaken for a class that was loaded in the same memory space
    as the unloaded class.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV14296

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-02-01

  • Closed date

    2012-02-15

  • Last modified date

    2012-06-01

  • 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

  • R260 PSY

       UP

  • R600 PSY

       UP



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Runtimes for Java Technology
Just In Time (JIT) Compiler

Software version:

260

Reference #:

IV14296

Modified date:

2012-06-01

Translate my page

Machine Translation

Content navigation