There are already some jfr events for safepoint.
EventSafepointStateSynchronization records safepoint synchronization information, but the relevant reason is missing when a timeout occurs.
Users can use `-XX:+SafepointTimeout -XX:SafepointTimeoutDelay=N` to see the threads that don't reach safepoint in time but without stack traces. `-XX:+ AbortVMOnSafepointTimeout ` can capture the stack traces but also crash the process, and hence it's not sensible to enable it in production.
Hence, it would be useful to have a new JFR event to explain further why the timeout happens.
EventSafepointStateSynchronization records safepoint synchronization information, but the relevant reason is missing when a timeout occurs.
Users can use `-XX:+SafepointTimeout -XX:SafepointTimeoutDelay=N` to see the threads that don't reach safepoint in time but without stack traces. `-XX:+ AbortVMOnSafepointTimeout ` can capture the stack traces but also crash the process, and hence it's not sensible to enable it in production.
Hence, it would be useful to have a new JFR event to explain further why the timeout happens.
- links to
-
Review openjdk/jdk/17888