Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8220794

PPC64: Fix signal handler for SIGSEGV on branch to illegal address

XMLWordPrintable

    • b14
    • ppc
    • linux

        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

              gromero Gustavo Romero
              gromero Gustavo Romero
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: