RFR: 8330464: hserr generic events - add entry for the before_exit calls [v2]
Richard Reingruber
rrich at openjdk.org
Thu Apr 18 07:55:59 UTC 2024
On Thu, 18 Apr 2024 07:40:23 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.
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>
> adjust comment in threads.cpp
src/hotspot/share/runtime/threads.cpp line 837:
> 835: // the program falls off the end of main(). Another VM exit path is through
> 836: // vm_exit() when the program calls System.exit() to return a value, or when
> 837: // there is a serious error in VM.
I'm not a native english speaker but I think all elements in the series need to be separated by commas.
Otherwise the misinterpretation that `System.exit()` calls `vm_exit()` is more likely.
Suggestion:
// vm_exit(), when the program calls System.exit() to return a value, or when
// there is a serious error in VM.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18809#discussion_r1570196092
More information about the hotspot-runtime-dev
mailing list