IBM Support

IJ53585: REDUCED MD5 PERFORMANCE

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: Increased cpu time was noted in MD5 codepaths
    after updating from Java 8 SR8 FP25 to FP26 when using balanced
    GC.
    .
    Stack Trace: 3XMTHREADINFO3           Java callstack:
    4XESTACKTRACE                at
    com/ibm/crypto/provider/MD5.a(Bytecode PC:192(Compiled Code))
    4XESTACKTRACE                at
    com/ibm/crypto/provider/MD5.engineDigest(Bytecode PC:17(Compiled
    Code))
    4XESTACKTRACE                at
    com/ibm/crypto/provider/PBEWithMD5AndTripleDESCipher.engineInit(
    Bytecode PC:370(Compiled Code))
    4XESTACKTRACE                at
    javax/crypto/Cipher.init(Bytecode PC:35(Compiled Code))
    4XESTACKTRACE                at
    javax/crypto/Cipher.init(Bytecode PC:7(Compiled Code))
    4XESTACKTRACE                at
    com/ibm/crypto/provider/I.a(Bytecode PC:114(Compiled Code))
    4XESTACKTRACE                at
    com/ibm/crypto/provider/JceKeyStore.engineSetKeyEntry(Bytecode
    PC:184(Compiled Code))
    .
    Other callstacks are possible, but note that the problem has
    only been seen with the IBMJCE version of MD5 and specifically
    impacts com/ibm/crypto/provider/MD5.a. It is common for the
    IBMJCEPlus provider to be used for MD5, with the notable
    exception of the use in JceKeyStore.
    

Local fix

  • The problem can be avoided by disabling profiling for the
    affected method, e.g. with the command line option:
    "-Xjit:{com/ibm/crypto/provider/MD5.a(*}(disableProfiling)"
    Note that if there is already an Xjit option being used then the
    above will need to be merged with the existing content.
    

Problem summary

  • The problem happens when the JIT is unable to generate a
    profiling version of the MD5.a method, after which the method
    will remain running in the version that was compiled at the
    'warm' optimization level instead of advancing to the
    'scorching' level. The complexity of the method is increased
    both by the code needed to support the balanced gc policy and by
    adding profiling data collection points, resulting in reaching a
    limit on the number of internal pointers.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IJ53585

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-02-12

  • Closed date

    2025-02-13

  • Last modified date

    2025-02-13

  • 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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
13 February 2025