RFR: 8330464: hserr generic events - add entry for the before_exit calls
Richard Reingruber
rrich at openjdk.org
Thu Apr 18 07:12:58 UTC 2024
On Wed, 17 Apr 2024 08:20:03 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
> We currently miss a hs_err file generic event entry for before_exit calls. Those would be helpful to see clearly that a crash happened in a shutdown phase (we had this case recently and would have liked to have a hserr event log entry showing this more clearly).
>
> Additionally while testing the event I called System.exit(0) to check the event.
> This showed a native backtrace like this
>
> Stack: [0x00007f1cfe825000,0x00007f1cfe926000], sp=0x00007f1cfe924530, free space=1021k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V [libjvm.so+0x8fb21b] before_exit(JavaThread*, bool)+0x4bb (java.cpp:376)
> V [libjvm.so+0x9da27c] JVM_Halt+0x6c (jvm.cpp:442)
> j java.lang.Shutdown.halt0(I)V+0 java.base at 23.0.0.1-internal
> j java.lang.Shutdown.halt(I)V+7 java.base at 23.0.0.1-internal
> j java.lang.Shutdown.exit(I)V+16 java.base at 23.0.0.1-internal
> j java.lang.Runtime.exit(I)V+14 java.base at 23.0.0.1-internal
> j java.lang.System.exit(I)V+4 java.base at 23.0.0.1-internal
>
> So the comment in thread.cpp seems to be outdated, Threads::destroy_vm() is not in the callstack and vm_exit() is not seen as well in the callstack so probably the comment needs adjustment.
src/hotspot/share/runtime/threads.cpp line 836:
> 834: // Threads::destroy_vm() is normally called from jni_DestroyJavaVM() when
> 835: // the program falls off the end of main(). Another VM exit path is through
> 836: // vm_exit() when
I think you have to read it like this:
Exit Path 1: reaching from Threads::destroy_vm()
Exit Path 2: reaching from
- vm_exit()
- System.exit()
- Serious error
Maybe add commas to disambiguate.
(https://en.wikipedia.org/wiki/Serial_comma)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18809#discussion_r1570128226
More information about the hotspot-runtime-dev
mailing list