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
Three changes were made to the JIT to resolve this class of problems. 1. The number of internal pointers added by profiling was reduced 2. In the event of running out of internal pointers during profiling the compilation is allowed to complete with partial profiling 3. If a profiling compilation fails for any reason then a non-profiled compilation at a high optimization level is scheduled to replace it https://github.com/eclipse-openj9/openj9/pull/21053 https://github.com/eclipse-omr/omr/pull/7637 https://github.com/eclipse-openj9/openj9/pull/21056 . This APAR will be fixed in the following Releases: . IBM Semeru Runtimes IBM SDK, Java Technology Edition 8 SR8 FP45 (8.0.8.45) . Downloads and supplementary documentation can be found at the following locations: - For non z/OS operating systems: - IBM Semeru Runtimes, Version 11 and later https://www.ibm.com/semeru-runtimes/downloads/ - IBM SDK, Java Technology Edition, Version 8 https://www.ibm.com/support/pages/java-sdk-downloads/ - For the z/OS operating system: - Java SDK Products on z/OS https://www.ibm.com/support/pages/java-sdk-products-zos
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