APAR status
Closed as program error.
Error description
Error Message: SIGSEGV while executing in the following stack trace: 0x0900000000ec7f48 {libj9vm26.so}{JBgetfield} <OSB>0x1002b7e0b00<CSB> 0x0a000100006c3e2c {java/math/BigDecimal.isDFPZero} INT <OSB>0xc42fd6a0-0xc42fd768<CSB> . Stack Trace: The original report of this issue showed a crash in the interpreter executing the BigDecimal.isDFPZero() method, but other symptoms could occur such as a crash in a compiled form of a BigDecimal method or a method that uses BigDecimal routines and even corruption of Java heap objects. 0x900000000ec7f48 {libj9vm26.so}{JBgetfield} <OSB>0x1002b7e0b00<CSB> 0xa000100006c3e2c {java/math/BigDecimal.isDFPZero} INT <OSB>0xc42fd6a0-0xc42fd768<CSB> . The problem can occur only on PowerPC processors (AIX and Linux PPC) and only when executing DFP operations within the BigDecimal class. The problem is rare because it requires that there is a high degree of register pressure resulting in the JIT using GPR0, which the JIT avoids due to the fact the GPR0 is more restricted in how it can be used.
Local fix
The problem can be avoided by using the following Java command line argument: -Xnodfpbd This option may effect performance in some rare cases, but in the general case the option has no effect on performance.
Problem summary
The JIT compiler replaces some BigDecimal routines with routines that use the DFP hardware on PPC. These replacement routines failed to mark the target address register used for memory store operations so that GPR0 would not be used. This caused the JIT to shuffle registers (to avoid using GPR0) within a control flow path allowing for the register shuffle to be skipped under some conditional paths leaving the potential for bad values to be used later in the effected method.
Problem conclusion
The JIT was modified such that it would correctly exclude GPR0 for DFP store operations so that any register shuffling would be done outside any control flow paths. . This APAR will be fixed in the following Java Releases: 6 R1 SR8 FP35 (6.1.8.35) 7 SR9 FP60 (7.0.9.60) 6 SR16 FP35 (6.0.16.35) 7 R1 SR3 FP60 (7.1.3.60) 8 SR3 FP11 (8.0.3.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
IV87105
Reported component name
JIT
Reported component ID
620700124
Reported release
260
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-07-20
Closed date
2016-07-21
Last modified date
2016-10-27
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
R260 PSY
UP
R600 PSY
UP
R130 PSY
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":"260","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
27 October 2016