APAR status
Closed as program error.
Error description
Error Message: A SIGSEGV when executing AtomicInteger.getAndDecrement(), but the issue might effect the following Atomic functions as well. java_util_concurrent_atomic_AtomicBoolean_getAndSet java_util_concurrent_atomic_AtomicInteger_getAndAdd java_util_concurrent_atomic_AtomicInteger_getAndIncrement java_util_concurrent_atomic_AtomicInteger_getAndDecrement java_util_concurrent_atomic_AtomicInteger_getAndSet java_util_concurrent_atomic_AtomicInteger_addAndGet java_util_concurrent_atomic_AtomicInteger_incrementAndGet java_util_concurrent_atomic_AtomicInteger_decrementAndGet java_util_concurrent_atomic_AtomicIntegerArray_getAndAdd java_util_concurrent_atomic_AtomicIntegerArray_getAndIncrement java_util_concurrent_atomic_AtomicIntegerArray_getAndDecrement java_util_concurrent_atomic_AtomicIntegerArray_getAndSet java_util_concurrent_atomic_AtomicIntegerArray_addAndGet java_util_concurrent_atomic_AtomicIntegerArray_incrementAndGet java_util_concurrent_atomic_AtomicIntegerArray_decrementAndGet . Stack Trace: 0xfff94406b9c {com/ibm/io/async/ResultHandler.runEventProcessingLoop} JIT 0xfff95fa1570 {com/ibm/io/async/ResultHandler$2.run} JIT 0xfff93da6b18 {com/ibm/ws/util/ThreadPool$Worker.run} JIT The issue was seen when executing in the above stack trace, but the issue could occur in any java code that calls the java.util.concurrent.atomic.Atomic* routines listed in this APAR. . The issue can only happen on the PowerPC platform and only on Java8 SR5 through Java 8 SR5FP10. The problem will only occur when a level of contention exists that causes the atomic update to execute a 2nd attempt at performing the atomic update. If there is no contention then the 1st atomic update will succeed and the issue will not occur. In addition, the issue can only occur when there the JIT is compiling a method that is complex enough to generate a significant amount of "register pressure" such that the JIT assigns register R0 to a specific purpose within the atomic update code. Given the above two restrictions, it is very unlikely that this issue will occur under normal conditions.
Local fix
The problem can be avoided by excluding the compilation of the failing method using the following java command line argument: -Xjit:exclude={failing_method} Where "failing_method" is the full method name as seen in the javacore from the failure. Consider using (* after the method name to avoid having to provide the complete parameter and return type signatures, e.g. -Xjit:exclude={com/ibm/SomeClass.amethod(*}
Problem summary
The JIT did not prevent the use of register R0 when implementing some set of Atomic functions that use PPC instructions with special handling for R0. This caused the JIT register assigner to incorrectly "spill" the register in the middle of a loop which results in a crash on the 2nd iteration of the loop.
Problem conclusion
The JIT was modified such that the use of R0 is prevented in handling Atomic methods where instruction are generated that can't use R0. . This APAR will be fixed in the following Java Releases: 8 SR5 FP11 (8.0.5.11) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Temporary fix
Comments
APAR Information
APAR number
IJ04249
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-02-19
Closed date
2018-02-21
Last modified date
2018-05-24
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":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
24 May 2018