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

Zero error reporting is broken after JDK-8255711

    XMLWordPrintable

Details

    • b05

    Backports

      Description

        This manifests on the following tests:

        runtime/ErrorHandling/ErrorFileRedirectTest.java
        runtime/ErrorHandling/SecondaryErrorTest.java
        runtime/memory/ReadFromNoaccessArea.java
        runtime/Unsafe/InternalErrorTest.java
        runtime/Safepoint/TestAbortVMOnSafepointTimeout.java

        00:17:25 # Internal Error (/home/shade/trunks/jdk/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp:94), pid=739632, tid=739633
        00:17:25 # Error: ShouldNotCall()

        address os::Posix::ucontext_get_pc(const ucontext_t* uc) {
          ShouldNotCallThis(); <---- crash here
          return NULL; // silence compile warnings
        }

        I believe the generification in JDK-8255711 applies to Zero awkwardly.

        Zero is awkward in the sense it is too generic for its own good. It does not have any access to crash context decoders, and that is why ucontext_* are ShouldNotCallThis()-ed. Before JDK-8255711, Zero error reporting code was specially crafted to avoid this, apparently.

        There are at least two problems:
         1. ucontext_get_pc in unimplemented, so we can special-case those for Zero. Instead of returning a bogus value from Zero implementation, I decided to just special-case at its critical use in error reporting.
         2. generic VMError::report_and_die circles back at Zero's unimplemented os::fetch_frame_from_context. Before JDK-8255711, Zero did fatal() that avoided this trouble. The patch ignores the context to match that behavior.

        Attachments

          Issue Links

            Activity

              People

                shade Aleksey Shipilev
                shade Aleksey Shipilev
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: