On Wed, 14 Aug 2024 20:53:33 GMT, Markus Grönlund <mgron...@openjdk.org> wrote:
> Greetings, > > Explicitly pin a virtual thread before acquiring the JFR string pool monitor > because migrating a carrier thread local event writer object onto another > carrier thread is impossible. > > During event commit, the thread is in a critical section because it has > loaded a carrier thread local event writer object. For virtual threads, a > contended monitor, such as a synchronized block, is a point where a thread > could become unmounted. > > A monitor guards the JFR string pool, but remounting a virtual thread onto > another carrier is impossible because of the event writer. > > Therefore, it's imperative to use explicit pin constructs to prevent > unmounting at this location. > > Testing: jdk_jfr > > Thanks > Markus This pull request has now been integrated. Changeset: 69bd227e Author: Markus Grönlund <mgron...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/69bd227e6c497eb82c46ab85125610c0b44dc04e Stats: 226 lines in 6 files changed: 189 ins; 10 del; 27 mod 8338417: Explicitly pin a virtual thread before acquiring the JFR string pool monitor Reviewed-by: alanb, egahlin, dholmes ------------- PR: https://git.openjdk.org/jdk/pull/20588