JDK-8220794 : PPC64: Fix signal handler for SIGSEGV on branch to illegal address
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 13
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: ppc
  • Submitted: 2019-03-18
  • Updated: 2019-05-06
  • Resolved: 2019-03-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 13
11.0.4Fixed 13 b14Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Currently JVM on Linux/PPC64 can crash silently if a SIGSEGV is cause not due to a load/store from/to an illegal data address but due to a branch to an invalid (not mapped / no execution allowed) address.

That issue was reported by Goetz (SAP) who provided an easy way to reproduce it: on a debug build, run the JVM with the following flags:

~/openjdks/jdk_tip_564043cbe138/bin$ ./java -XX:-UseSIGTRAP -XX:-CreateCoredumpOnCrash -XX:ErrorHandlerTest=13
Segmentation fault (core dumped)

It will crash silently instead of in a controlled way triggered by VMError::controlled_crash(). 

Goetz sees the error only on linux ppc64 le (ABI ELFv2), not on linux ppc64 be (ABI ELFv1) nor AIX. It is failing since the ppc64le port was introduced.

HE tested this on the following OSes: 
Ubuntu 16.04.3 LTS 4.4.0-101-generic 
RHEL 7.2 3.10.0-327.10.1.el7.ppc64le 
RHEL 7.3 3.10.0-693.2.2.el7.ppc64le 
RHEL 7.4 3.10.0-693.1.1.el7.ppc64le 
SLES 12.1 3.12.57-60.35-default 
SLES 12.3 4.4.126-94.22-default 
SLES 15.0 4.12.14-25.16-default


Comments
Fix Request This fixes an issue handling SIGNALS on ppc. The change applies cleanly.
01-04-2019