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

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

    Details

    • Subcomponent:
    • Resolved In Build:
      b14
    • CPU:
      ppc
    • OS:
      linux

      Backports

        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

          Attachments

            Issue Links

              Activity

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: