RFR: 8332259: JvmtiTrace::safe_get_thread_name is not safe

Leonid Mesnik lmesnik at openjdk.org
Fri May 17 01:53:14 UTC 2024


The JvmtiTrace::safe_get_thread_name sometimes crashes when called while current thread is in native thread state.

It happens when thread_name is set for tracing from jvmti functions.
See:
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/jvmtiEnter.xsl#L649 

The setup is called and the thread name is used in tracing before the thread transition. There is no good location where this method could be called from vm thread_state only. Some functions like raw monitor enter/exit never transition in vm state. So sometimes it is needed to call this function from native thread state.

The change should affect JVMTI trace mode only (-XX:TraceJVMTI). 

Verified by running jvmti/jdi/jdb tests with tracing enabled.

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

Commit messages:
 - include updated.
 - 8332259

Changes: https://git.openjdk.org/jdk/pull/19275/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19275&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332259
  Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/19275.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19275/head:pull/19275

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


More information about the serviceability-dev mailing list