RFR: 8292674: ReportJNIFatalError should print all java frames [v4]
Robbin Ehn
rehn at openjdk.org
Fri Dec 9 08:44:59 UTC 2022
On Fri, 9 Dec 2022 01:53:40 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> When JNI reports errors and warnings and produces a stack trace, we need to see the exact Java code that was being executed. The existing `JavaThread::print_stack` that is used is only for platform/carrier threads and doesn't show any mounted virtual thread. So we introduce a new `JavaThread::print_virtual_stack_on` method to print the mounted virtual thread's stack, and we add `JavaThread::print_jni_stack` as a utility for JNI to call that dispatches to the appropriate function based on the thread type.
>>
>> The existing test `hotspot/jtreg/runtime/jni/checked/TestPrimitiveArrayCriticalWithBadParam.java` was modified to test regular and virtual threads, and to expect to see the specific stack frame of the Java native method.
>>
>> Additional manual testing of the JNI `FatalError` method was done by direct fault injection in modified JDK code.
>>
>> Sanity testing: Oracle tiers 1-4 (to include our -Xcheck:jni run in tier4)
>>
>> Thanks,
>> David
>
> David Holmes has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>
> - Merge branch 'master' into 8292674-ReportJNIFatalError-v2
> - Merge branch 'master' into 8292674-ReportJNIFatalError-v2
> - Changed RegisterMap to include process_frame and update, for object monitor examination.
> Updated stack printing for exception checks.
> - 8292674: ReportJNIFatalError should print all java frames
Looks good, thanks!
-------------
PR: https://git.openjdk.org/jdk/pull/11503
More information about the hotspot-dev
mailing list