RFR(XS): 8234882: JVM TI StopThread should only allow ThreadDeath

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Wed May 27 03:01:04 UTC 2020


Please, review a fix for:
   https://bugs.openjdk.java.net/browse/JDK-8234882

CSR draft (one CSR reviewer is needed before finalizing it):
   https://bugs.openjdk.java.net/browse/JDK-8245853

Webrev:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2020/jvmti-stop-thread.1/src/

Updated JVM TI StopThread spec:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2020/jvmti-stop-thread.1/docs/specs/jvmti.html#StopThread

Summary:

   The JVM TI StopThread method mirrored the functionality of the
   java.lang.Thread::stop(Throwable t) method, in that it allows any 
exception
   type to be installed as an asynchronous exception in the target thread.
   However, the java.lang.Thread::stop(Throwable t) method was 
inherently unsafe
   and in Java 8 (under JDK-7059085) it was "retired" so that it always 
threw
   UnsupportedOperationException.
   The updated JVM TI StopThread spec disallows an arbitrary Throwable 
from being passed,
   and instead restricts the argument to being an instance of 
ThreadDeath, thus
   mirroring the (deprecated but still functional) 
java.lang.Thread::stop() method.
   The error JVMTI_ERROR_INVALID_OBJECT is returned if the exception 
argument
   is not an instance of ThreadDeath.

   Also, I will file similar RFE and CSR on the JDI and JDWP spec.


Testing:
   Built docs and checked the doc has been generated as expected.
   Will run the nsk.jvmti tests locally.
   Will submit hs-tiers1-3 to make sure there are no regressions in the 
JVM TI and JDI tests.

Thanks,
Serguei


More information about the serviceability-dev mailing list