RFR: 8292674: ReportJNIFatalError should print all java frames

David Holmes david.holmes at oracle.com
Tue Dec 6 04:52:54 UTC 2022


FYI (skara doesn't recopgnise loom-dev as a target ML.)

-------- Forwarded Message --------
Subject: RFR: 8292674: ReportJNIFatalError should print all java frames
Date: Tue, 6 Dec 2022 00:08:42 GMT
From: David Holmes <dholmes at openjdk.org>
To: hotspot-dev at openjdk.org

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

-------------

Commit messages:
  - 8292674: ReportJNIFatalError should print all java frames

Changes: https://git.openjdk.org/jdk/pull/11503/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11503&range=00
   Issue: https://bugs.openjdk.org/browse/JDK-8292674
   Stats: 95 lines in 6 files changed: 79 ins; 3 del; 13 mod
   Patch: https://git.openjdk.org/jdk/pull/11503.diff
   Fetch: git fetch https://git.openjdk.org/jdk pull/11503/head:pull/11503

PR: https://git.openjdk.org/jdk/pull/11503


More information about the loom-dev mailing list