IBM Support

IJ47085: JAVA JIT: SIG_SEGV IN SETHANDLERINFOWITHOUTBCINFO()

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 SIG_SEGV while JIT compiling a method
    The javacore will have a line like this:
    1XHEXCPMODULE  Compiling method: ...
    .
    Stack Trace:
    {libj9jit29.so}{setHandlerInfoWithOutBCInfo__Q2_3OMR5BlockFUiUcU
    sP17TR_ResolvedMethodPQ2_2TR11Compilat...}
    {libj9jit29.so}{processBytecodeAndGenerateCFG__21TR_J9EstimateCo
    deSizeFP13TR_CallTargetRQ2_2TR6RegionR...}
    {libj9jit29.so}{realEstimateCodeSize__21TR_J9EstimateCodeSizeFP1
    3TR_CallTargetP12TR_CallStackbRQ2_2TR6...}
    {libj9jit29.so}{estimateCodeSize__21TR_J9EstimateCodeSizeFP13TR_
    CallTargetP12TR_CallStackb}
    {libj9jit29.so}{calculateCodeSize__19TR_EstimateCodeSizeFP13TR_C
    allTargetP12TR_CallStackb}
    {libj9jit29.so}{estimateAndRefineBytecodeSize__16TR_J9InlinerUti
    lFP11TR_CallSiteP13TR_CallTargetP12TR_...}
    {libj9jit29.so}{applyPolicyToTargets__14TR_InlinerBaseFP12TR_Cal
    lStackP11TR_CallSite}
    {libj9jit29.so}{getSymbolAndFindInlineTargets__14TR_InlinerBaseF
    P12TR_CallStackP11TR_CallSiteb}
    {libj9jit29.so}{inlineCallTargets__28TR_MultipleCallTargetInline
    rFPQ2_2TR20ResolvedMethodSymbolP12TR_...}
    {libj9jit29.so}{performInlining__14TR_InlinerBaseFPQ2_2TR20Resol
    vedMethodSymbol}
    {libj9jit29.so}{perform__10TR_InlinerFv}
    {libj9jit29.so}{performOptimization__Q2_3OMR9OptimizerFPC20Optim
    izationStrategyiN22}
    {libj9jit29.so}{optimize__Q2_3OMR9OptimizerFv}
    {libj9jit29.so}{compile__Q2_3OMR11CompilationFv}
    ...
    .
    The problem can occur on any platform when using the IBM JVM,
    but the issue can only occur when compiling a method that is
    very close to the JVM method size limit of 65536 bytes. I
    believe the issue might be limited to method that are not
    compiled using javac, like auto generated methods.
    

Local fix

  • The issue can only be avoided by preventing the JIT from
    attempting to compile the method which triggers the issue to
    occur. This can be achieved by using the following java command
    line option with the method name that is seen in the javacore on
    the "1XHEXCPMODULE  Compiling method" line.
    -Xjit:exclude={full_method_name_from_javacore}
    

Problem summary

  • The JIT was using 16bit variables to hold the offset to try
    region and catcher bytecodes. In some rare cases where (after
    being loaded by the VM) a method size can exceed 65536 bytes,
    and if the bytecode offset of a try region or a catch bock is
    greater then 65536, truncation will occur leading to a SIG_SEGV.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IJ47085

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-06-02

  • Closed date

    2023-06-03

  • Last modified date

    2023-06-03

  • 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

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

Document Information

Modified date:
04 June 2023