Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
The Thread-SMR project added a couple of counter based tests for ThreadMXBean.getThreadInfo() and ThreadInfo.getLockOwnerName(): nsk/monitoring/ThreadInfo/isSuspended/issuspended002.java nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006.java See "JDK-8167108 inconsistent handling of SR_lock can lead to crashes". The tests have been moved/renamed to: test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002/TestDescription.java test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006.java I've created a time based test for ThreadMXBean.getThreadInfo() and ThreadInfo.getLockOwnerName(). This time based test is more appropriate for use in stress kits instead of a counter based test like issuspended002 or find006. I created the test for investigating the following bug: JDK-8263901 RunThese30M.java failed with SIGSEGV in Threads::owning_thread_from_monitor_owner and I've verified that this test does exercise the crashing thread's code path from JDK-8263901. However, the getThreadInfo() and getLockOwnerName() APIs do not use nested ThreadsListHandles and I believe that's the root cause for JDK-8263901. I wasn't able to prove my theory so I closed JDK-8263901 as not reproducible, but the test I developed is still quite useful for exercising the use of ThreadsListHandles by getThreadInfo() when gathering a thread's info either at a safepoint or at a non-safepoint.
|