IBM Support

IV44071: UNEXPECTED EXCEPTION CAUSED BY INCORRECT LOOP OPTIMIZATION IN THE JIT COMPILER

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: JRuby throws an unexpected RangeError. This
    problem could affect other Java programs too, and the most
    likely symptom is an ArrayIndexOutOfBoundsException.
    .
    Stack Trace:
    RangeError: 256 out of char range
        org/jruby/RubyInteger.java:272:in `chr'
        test_digest_extend.rb:43:in `test_digest_s_hexencode'
        org/jruby/RubyArray.java:2336:in `collect'
        test_digest_extend.rb:43:in `test_digest_s_hexencode'
        org/jruby/RubyKernel.java:1944:in `send'
        org/jruby/RubyArray.java:1603:in `each'
        org/jruby/RubyArray.java:1603:in `each'
    .
    

Local fix

  • -Xjit:disableLoopStrider
    Note that the use of this option may have a small performance
    impact. In most cases the performance will be reduced by 1% or
    less.
    

Problem summary

  • The problem is caused by the loop striding optimization in the
    JIT compiler. The optimization is designed to reduce the amount
    of computation needed to derive the value of induction variables
    in each iteration of a loop, by replacing the computation with
    simpler arithmetics. When a variable is used in the loop
    termination condition, and the variable is the result of a
    type conversion, and the variable is referenced in multiple
    expressions, then the optimization may incorrectly replace the
    variable in the wrong expression (e.g. in an array index),
    causing the loop to misbehave or an array operation to go out
    of bounds.
    

Problem conclusion

  • This defect will be fixed in:
    7.0.0 SR5
    6.0.1 SR6
    6.0.0 SR14
    5.0.0 SR16 FP3
    .
    The JIT compiler has been modified to correct the optimization.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV44071

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-06-10

  • Closed date

    2013-06-10

  • Last modified date

    2014-01-22

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

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

    IV44072

Fix information

  • Fixed component name

    JIT

  • Fixed component ID

    620700124

Applicable component levels

  • R260 PSY

       UP

  • R600 PSY

       UP

[{"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":"260","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
22 January 2014