On Wed, 4 Nov 2026 19:54:04 GMT, Leonid Mesnik <[email protected]> wrote:

>> Hi 
>> 
>> During testing of 
>> [JDK-8383787](https://bugs.openjdk.org/browse/JDK-8383787): 
>> JVMTI_EVENT_SAMPLED_OBJECT_ALLOC may make a cloned object accessible to Java 
>> before clone
>> 
>> I find that clone() intrinsic doesn't call JVMTI VMObjectAlloc as well as 
>> SampledObjecAlloc. There is no requirement for SampledObjectAlloc to be 
>> triggered by any allocation. While VMObjectAlloc should be called. 
>> I find 2 compiler optimizations that allocated object during clone without 
>> corresponding notification.
>> 
>> I applied fix similar to
>> [JDK-8307462](https://bugs.openjdk.org/browse/JDK-8307462) [REDO] 
>> VmObjectAlloc is not generated by intrinsics methods which allocate objects
>> 
>> The allocation check if notification are enabled using 
>> JvmtiExport::_should_notify_object_alloc and deoptimize clone in this case.
>> 
>> I verified that VMObjectAllocCloneTest.java failed with `-Xcomp 
>> -XX:-TieredCompilation `and -`Xcomp -XX:TieredStopAtLevel=1`. However I 
>> haven't added them as separate testcases.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Leonid Mesnik has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Updated test to explicitly verify C1 and C2.
>  - Updated test to support non-jvmti builds.

Thank you for the update. Looks good.

-------------

Marked as reviewed by sspitsyn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/33684#pullrequestreview-5775329450

Reply via email to