IBM Support

IV82442: CRASH IN JITINSTANCEOF DURING THE DEREFERENCE OF AN UNLOADED CLA SS

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 segmentation error is thrown when the compiled
    code tries to dereference a class reference whose value is
    invalid because the class it refers to has been unloaded.
    .
    Stack Trace: Unhandled exception
    Type=Segmentation error vmState=0x00040000
    J9Generic_Signal_Number=00000004 ExceptionCode=c0000005
    ExceptionAddress=6EEFAEC2 ContextFlags=0001003f
    Handler1=6F3CF230 Handler2=6F388520
    InaccessibleReadAddress=00000010
    EDI=236DD900 ESI=00000000 EAX=251ABF00 EBX=236DD900
    ECX=00000000 EDX=236DD900
    EIP=6EEFAEC2 ESP=23FCC6D0 EBP=23079400 EFLAGS=00010206
    GS=002B FS=0053 ES=002B DS=002B
    Module=j9jit28.dll
    Module_base_address=6E970000 Offset_in_DLL=0058aec2
    Target=2_90_20160206_289328 (Windows 8.1 6.3 build 9600)
    CPU=x86 (2 logical CPUs) (0xfff8d000 RAM)
    ----------- Stack Backtrace -----------
    jitInstanceOf+0x82 (nathelp.asm:4228, 0x6EEFAEC2
    <OSB>j9jit28+0x58aec2<CSB>)
    (0x237D3DDF)
    (0x251ABF00)
    (0x224D8D68)
    (0x2307EC78)
    .
    

Local fix

  • This issue can be worked around using the
    -Xjit:disableLoopVersioner option globally or on the affected
    methods. Note however that this workaround is likely to have a
    noticeable negative performance impact, especially when used
    globally.
    

Problem summary

  • In some circumstances the JIT may generate an instanceof test as
    part of rearranging program code to improve performance. Under
    some rare circumstances this instanceof test can fail
    unexpectedly due to class unloading - the JIT moves the
    instanceof beyond the guards protecting it from this event. This
    invalid state can result in a program crash or in very rare
    circumstances an incorrect result being computed.
    

Problem conclusion

  • The JIT compiler has been updated to ensure that the motion of
    instanceofs correctly accounts for potential class unloading
    during compiled method execution.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR3       (8.0.3.0)
       7    SR9 FP40  (7.0.9.40)
       6 R1 SR8 FP25  (6.1.8.25)
       6    SR16 FP25 (6.0.16.25)
    .
    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

    IV82442

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-03-09

  • Closed date

    2016-03-09

  • Last modified date

    2016-03-09

  • 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

  • R130 PSY

       UP

  • R260 PSY

       UP

  • R600 PSY

       UP



Document information

More support for: Runtimes for Java Technology
Just In Time (JIT) Compiler

Software version: 130

Reference #: IV82442

Modified date: 09 March 2016