RFR: 8269416: [JVMCI] capture libjvmci crash data to a file
Vladimir Kozlov
kvn at openjdk.java.net
Tue Jun 29 16:05:01 UTC 2021
On Mon, 28 Jun 2021 22:58:04 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
> When a fatal error occurs in libgraal, it writes a crash dump to `tty`. Instead, it should be captured in a separate log file that is then referenced in the HotSpot crash summary (just like the hs_err_pid and CI replay compile log files are). This allows libgraal crash data to be more easily submitted along with VM crash reports.
>
> For example:
>
>> java -Dlibgraal.CrashAtIsFatal=true -Dgraal.CrashAt=String.equals -cp bin CountUppercase skjdf
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # Internal Error (jvmciRuntime.cpp:909), pid=36298, tid=41219
> # fatal error: thread 41219: Fatal error in JVMCI shared library
> #
> # JRE version: OpenJDK Runtime Environment GraalVM LIBGRAAL 21.3.0-dev (16.0.2) (build 16.0.2-internal+0-adhoc.dnsimon.labsjdk-ce-16)
> # Java VM: OpenJDK 64-Bit Server VM GraalVM LIBGRAAL 21.3.0-dev (16.0.2-internal+0-adhoc.dnsimon.labsjdk-ce-16, mixed mode, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
> # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
> #
> # An error report file with more information is saved as:
> # /Users/dnsimon/graal/graal/compiler/hs_err_pid36298.log
> #
> # The JVMCI shared library error data is saved as:
> # /Users/dnsimon/graal/graal/compiler/hs_err_pid36298_libjvmci.log
> #
> # If you would like to submit a bug report, please visit:
> # https://bugreport.java.com/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
> #
Someone from Runtime group may have good suggestions for this changes.
I think you need to follow (or create JVMCI specific flags) flags used for error reporting:
SuppressFatalErrorMessage
ShowMessageBoxOnError
UseOSErrorReporting
ErrorFileToStdout
ErrorFileToStderr
src/hotspot/share/utilities/vmError.cpp line 1592:
> 1590: #if INCLUDE_JVMCI
> 1591: if (JVMCI::fatal_log_filename() != NULL) {
> 1592: out.print_raw("#\n# The JVMCI shared library error data is saved as:\n# ");
I prefer `report file` instead of `data`.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4620
More information about the hotspot-dev
mailing list