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

java: async-profiler: prepare for next major release #745

Closed
Jongy opened this issue Mar 26, 2023 · 0 comments
Closed

java: async-profiler: prepare for next major release #745

Jongy opened this issue Mar 26, 2023 · 0 comments
Assignees
Labels
defined-and-prioritized Tickets that have fully defined the desired outcome & are prioritized to be developed. runtime/java

Comments

@Jongy
Copy link
Contributor

Jongy commented Mar 26, 2023

The next async-profiler release (coming after 2.9) includes a few changes that will break gProfiler and require our preparation. We prepare ahead of time because I'd like to use the new version as soon as it's released - new features and bugfixes are always good.

The 2 breaking changes I'm aware of now are:

  • async-profiler/async-profiler@4a7ce8c - Binary launcher - no more jattach - AP is now invoked via a binary called "asprof" which internally invokes jattach-alike behavior. I think it's best if we move to use the new asprof binary - so our async-profiler build will now give asprof and we need to use the API it provides to start/stop/dump async-profiler.
  • "Binary launcher" also stops building jattach - I think the best course of action would be to expose jattach behavior from asprof. Internally in asprof there's a function run_jattach so we can expose it with a subcommand, then for our usage of getting JVM flags etc we can use this new subcommand. Alternatively, we can build jattach separately, but I prefer the previous solution.
  • async-profiler/async-profiler@ac561f3 - we might want to use it, i.e stop building both musl and glibc variants, and try to use one. I'm reluctant to make such a big change so FWIW from my end we can remain with the 2 builds, at the very least if we use the incorrect one, we won't crash 🤷 there's still a difference between musl and glibc because musl is built with static libgcc and libstdc++, because most musl envs don't have them. glibc is not built with them static, and I'd like to keep it that way, to retain smaller binary size. So if we do make the musl change, we will still need to maintain 2 variants, one being static libs and one not static. All in all I'm in favor of not mixing the 2 changes.
@Jongy Jongy added runtime/java defined-and-prioritized Tickets that have fully defined the desired outcome & are prioritized to be developed. labels Mar 26, 2023
@Jongy Jongy closed this as completed in 5123ab4 May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defined-and-prioritized Tickets that have fully defined the desired outcome & are prioritized to be developed. runtime/java
Projects
None yet
Development

No branches or pull requests

2 participants