Disallowing the dynamic loading of agents by default

Yasumasa Suenaga suenaga at oss.nttdata.com
Sun Mar 19 02:51:40 UTC 2023


HI,

I haven't followed this topic, but I think dynamic loading mechanism of JVMTI agent is useful for debugging.

Can we change flag type of EnableDynamicAgentLoading to `manageable` from `product`? If so, we can use JVMTI agent without rebooting system when we encountered some troubles in production system.


Thanks,

Yasumasa


On 2023/03/17 3:48, Ron Pressler wrote:
> Hi.
> 
> In JDK 21 we intend to disallow the dynamic loading of agents by default. This
> will affect tools that use the Attach API to load an agent into a JVM some time
> after the JVM has started [1]. There is no change to any of the mechanisms that
> load an agent at JVM startup (-javaagent/-agentlib on the command line or the
> Launcher-Agent-Class attribute in the main JAR's manifest).
> 
> This change in default behavior was proposed in 2017 as part of JEP 261 [2][3].
> At that time the consensus was to switch to this default not in JDK 9 but in a
> later release to give tool maintainers sufficient time to inform their users.
> To allow the dynamic loading of agents, users will need to specify
> -XX:+EnableDynamicAgentLoading on the command line.
> 
> I'll post a draft JEP for review shortly.
> 
> -- Ron
> 
> [1]: https://docs.oracle.com/en/java/javase/19/docs/api/jdk.attach/com/sun/tools/attach/package-summary.html
> [2]: https://openjdk.org/jeps/261
> [3]: https://mail.openjdk.org/pipermail/jigsaw-dev/2017-April/012040.html


More information about the serviceability-dev mailing list