IBM Support

IV00707: JAVA JIT - EXECUTING THE WRONG CODE WHEN TWO IMPLEMENTATIONS EXI ST

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: During a virtual or interface call, the wrong
    implementation of an abstract or interface method is executed.
    Possible symptoms are varied:
    1) Crash in JIT compiled code or the interpreter
    2) Incorrect behaviour of a Java application
    3) Unexpected exception
    4) Crash in JIT runtime routines
    5) Crash in GC
    
    Stack Trace: N/A
    
    If the JIT compiler aborts the compilation of a method for any
    reason, there is a small chance that some class meta-data may
    be left in an inconsistent state. This may lead to errors in
    subsequent compilations when an optimization requires accurate
    information about the class hierarchy.
    

Local fix

  • The most common reason by far for aborting a compilation is the
    exhaustion of JIT scratch memory, which is a fixed amount of
    memory used by the compiler to hold various data structures
    related to the optimization and code generation for a method
    being compiled.
    
    The probability of encountering the problem can be reduced by
    increasing the maximum size of the JIT temporary scratch space.
    For Java 6, this can be done using the following Java command-
    line option:
    
    -Xjit:scratchSpaceLimit=262144
    
    Increasing the maximum scratch space will allow more complex
    methods to be compiled, and may increase the amount of time
    spent on compilation during the startup phase of the program.
    
    If the problem still occurs after setting the above option,
    chances are that a compilation is being aborted for some other
    reason. The following option can be used instead:
    
    -Xjit:disableCHOpts
    
    This prevents the JIT compiler from using class meta-data for
    optimizations, so that an aborted compilation does not cause
    incorrect optimization in subsequent compilations. However,
    this will cause severe performance degradation.
    

Problem summary

  • Possibility of class metadata being left in an inconsistent
    state after compilation fails due to running out of scratch
    space.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR9 FP3
    .
    The JIT has been modified to reset the relevant class metadata
    after a failed compilation.
    .
    To obtain the fix:
    Install build 20110612 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV00707

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-05-24

  • Closed date

    2011-07-31

  • Last modified date

    2012-01-13

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IV00708

Fix information

  • Fixed component name

    JIT

  • Fixed component ID

    620700124

Applicable component levels

  • R600 PSY

       UP

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"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":"6.0"}]

Document Information

Modified date:
27 September 2021