RFR: 8367953: JFR sampler threads does not appear in thread dump
Yasumasa Suenaga
ysuenaga at openjdk.org
Thu Sep 18 08:18:58 UTC 2025
I tried to get thread dump of the process which is enabled JFR, then I got strange thread dump like this:
os_prio=0 cpu=64.47ms elapsed=20.34s tid=0x00007ff7cd3ffae0 nid=59812 runnable
os_prio=0 cpu=12.76ms elapsed=20.34s tid=0x00007ff7cd3ff5a0 nid=59811 runnable
Thread name is lacked in the dump (and lacks of LF in addition).
I checked them with `ps -eL -o pid,tid,comm`, then I was aware they were JFR sampler threads.
59789 59811 JFR CPU Sampler
59789 59812 JFR Sampler Thr
So they should be shown like this:
"JFR Sampler Thread" os_prio=0 cpu=25.59ms elapsed=8.77s tid=0x00007f5f45626a50 nid=62979 runnable
"JFR CPU Sampler Thread" os_prio=0 cpu=4.78ms elapsed=8.78s tid=0x00007f5f45626060 nid=62978 runnable
They are implemented in `JfrSamplerThread` and `JfrCPUSamplerThread`, extends `NonJavaThread`. They do not have `print_on()`, so `Thread::print_on()` would be used - it would not print thread name.
Other child class of `NonJavaThread` like `WatcherThread` overrides `print_on` to show thread name. Thus both of JFR sampler threads should do so.
-------------
Commit messages:
- Remove override qualifier
- 8367953: JFR sampler threads does not appear in thread dump
Changes: https://git.openjdk.org/jdk/pull/27357/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27357&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8367953
Stats: 14 lines in 2 files changed: 14 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/27357.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27357/head:pull/27357
PR: https://git.openjdk.org/jdk/pull/27357
More information about the hotspot-jfr-dev
mailing list