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

David Holmes david.holmes at oracle.com
Wed May 27 07:47:02 UTC 2020


Hi Serguei,

On 27/05/2020 1:01 pm, serguei.spitsyn at oracle.com wrote:
> 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

I have some thoughts on the wording which I will add to the CSR.

Also on reflection I think JVMTI_ERROR_ILLEGAL_ARGUMENT would the best 
error to use, and it has an equivalent in JDWP and at the Java level for 
JDI.

Thanks,
David

> 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