> 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 one additional commit since the last revision: fixed risc-v instr ------------- Changes: - all: https://git.openjdk.org/jdk/pull/33684/files - new: https://git.openjdk.org/jdk/pull/33684/files/535df622..575f74e8 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=33684&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=33684&range=03-04 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/33684.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/33684/head:pull/33684 PR: https://git.openjdk.org/jdk/pull/33684
