The jvmti class redefinition creates temporary scratch classes for it's own purposes. These classes are added to corresponding classloaders and might be unloaded.
In this case the jvmti/jfr and log events are generated twice: for original class and for it's scratch.
The bug could be reproduced by jfr test
jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java
with '-Xcomp -XX:TieredStopAtLevel=1' or with '-Xcomp'
The test hang because got 2 events while waiting for one.
In this case the jvmti/jfr and log events are generated twice: for original class and for it's scratch.
The bug could be reproduced by jfr test
jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java
with '-Xcomp -XX:TieredStopAtLevel=1' or with '-Xcomp'
The test hang because got 2 events while waiting for one.
- relates to
-
JDK-8341421 Update 8340826 fix for jfr
-
- Open
-
-
JDK-8318098 Update jfr tests to replace keyword jfr with vm.flagless
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/12de4fbc
-
Review(master) openjdk/jdk/21166