IBM Support

IZ81067: JAVA JIT: HANG WHILE THE JIT IS COMPILING A METHOD.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: The Java process hangs.
    .
    Stack Trace: One of the executing thread will have the following
    stack trace when the hang occurs:
    {libj9jit24.so}{removeRedundantMonitors__21TR_MonitorElimination
    Fv}
    {libj9jit24.so}{perform__21TR_MonitorEliminationFv}
    {libj9jit24.so}{IPRA.$performOptimization__16TR_OptimizerImplFPQ
    2_16TR_OptimizerImpl12OptimizationiN22}
    {libj9jit24.so}{IPRA.$performOptimization__16TR_OptimizerImplFPQ
    2_16TR_OptimizerImpl12OptimizationiN22}
    {libj9jit24.so}{optimize__16TR_OptimizerImplFv}
    {libj9jit24.so}{performOptimizations__14TR_CompilationFv}
    {libj9jit24.so}{compile__14TR_CompilationFv}
    {libj9jit24.so}{compile__18TR_CompilationInfoFP10J9VMThreadP14TR
    _CompilationP10TR_OptionsP17TR_ResolvedMethodR11TR_FrontEndP19TR
    _OptimizationPlan}
    {libj9jit24.so}{wrappedCompile__18TR_CompilationInfoFP13J9PortLi
    braryPQ2_18TR_CompilationInfo17CompileParameters}
    {libj9prt24.so}{j9sig_protect}
    {libj9jit24.so}{compile__18TR_CompilationInfoFP10J9VMThreadP21TR
    _MethodToBeCompiledb}
    {libj9jit24.so}{protectedCompilationThreadProc__FP13J9PortLibrar
    yPv}
    {libj9prt24.so}{j9sig_protect}
    {libj9jit24.so}{compilationThreadProc__FPv}
    {libj9thr24.so}{thread_wrapper}
    {libpthreads.a}{_pthread_body}
    .
    The problem can only occur with a large number of synchronized
    blocks. They can be synchronized blocks in the Java code or the
    result of the JIT inlining synchronized methods. The code
    between the blocks must be small so that the JIT will see a
    sync-exit with a sync-enter near by.
    

Local fix

  • Using the following JIT options on the Java command line will
    avoid the problem:
    -Xjit:disableRedundantMonitorElimination
    Using this option my have a impact on performance, but it is
    expected to be a small impact unless monitors are used very
    frequently and a number of them are redundant.
    

Problem summary

  • The JIT would spend a lot of time analysing synchronized blocks
    looking for opportunities to remove synchronization. This was
    caused by a large number of synchronized block being examined
    repeatedly due to the proximity of a sync-exit of one block and
    the following sync-enter for another block.
    

Problem conclusion

  • This defect will be fixed in:
    5.0.0 SR13
    6.0.0 SR10
    .
    The JIT compile has been modified to address this problem.
    .
    To obtain the fix:
    Install build 20100730 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ81067

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-07-29

  • Closed date

    2010-08-11

  • Last modified date

    2010-08-11

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

    IZ81066

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

Fix information

  • Fixed component name

    JIT

  • Fixed component ID

    620700124

Applicable component levels

  • R600 PSN

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

Document Information

Modified date:
11 August 2010