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