Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce low-level JFR events #3728

Open
2 tasks
leonard84 opened this issue Mar 15, 2024 · 7 comments
Open
2 tasks

Introduce low-level JFR events #3728

leonard84 opened this issue Mar 15, 2024 · 7 comments

Comments

@leonard84
Copy link
Collaborator

leonard84 commented Mar 15, 2024

Motivation

Currently, junit-platform-jfr provides events that are observable to standard listeners.

However, it can't provide insights into low-level events, such as the exclusive resource locks.

Previously, it was decided to only introduce JFR via an optional module because it was not supported until JDK 11. A lot has changed since: JFR has been backported to openjdk8, and all current distributions support it. Plus, JDK 9 and 10 have been EOL for a long time.

Furthermore, there is the https://github.com/gradle/jfr-polyfill project that provides a no-op implementation that prevents any crashes due to ClassNotFoundError.

Deliverables

  • Move JFR events into the platform core
  • Add additional low-level events, e.g., for resource locks
@marcphilipp
Copy link
Member

TODO: Double-check if OpenJ9 also supports JFR

@sormuras
Copy link
Member

Not yet, it seems:

@leonard84
Copy link
Collaborator Author

OpenJ9 should work with jfr-polyfill. The question is whether you'd want to add it as a default dependency, or if OpenJ9 users should add it themselves.

@marcphilipp
Copy link
Member

As a first step, we should add a CI build using OpenJ9 to run tests. I'll see to that.

@marcphilipp marcphilipp self-assigned this Apr 12, 2024
@marcphilipp
Copy link
Member

As a first step, we should add a CI build using OpenJ9 to run tests. I'll see to that.

Done in #3768

@sormuras
Copy link
Member

Moving the JFR events from the extra module to core would also render the extra configuration step to include junit-platform-jfr-$VERSION.jar described in https://junit.org/junit5/docs/current/user-guide/#running-tests-listeners-flight-recorder superseded. Which in turn enables users of the junit-platform-console-standalone-$VERSION.jar variant also make use of JFR events by default.

@leonard84
Copy link
Collaborator Author

This would've helped to evaluate #3936, and the recent deadlocks in Spock's CI builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants