On Thu, 17 Jul 2025 22:18:44 GMT, Ioi Lam <ik...@openjdk.org> wrote:

> When `-XX:+AOTClassLinking` is enabled when dumping CDS archives with `java 
> -Xshare:dump`, we have more stringent restriction of what Java code can be 
> executed -- if arbitrary Java code is executed, it may produce side effects 
> that cannot be handled when archiving Java heap objects. This usually leads 
> to cdsHeapVerifier.cpp reporting suspicious references to static fields that 
> are not known to be safe.
> 
> We already avoid loading Java agents when dumping AOT caches (which are just 
> enhanced CDS archives with more optimizations), we should do the same thing 
> for `java -Xshare:dump -XX:+AOTClassLinking`.
> 
> After this PR, we still allow Java agents for `java -Xshare:dump 
> -XX:-AOTClassLinking`, as that is required by some CDS tests. In a subsequent 
> RFE, we will fix these CDS tests so Java agents are always disabled for `java 
> -Xshare:dump`. See [JDK-8362561](https://bugs.openjdk.org/browse/JDK-8362561)

Looks good.

test/hotspot/jtreg/runtime/cds/appcds/aotCache/JavaAgentTransformer.java line 
41:

> 39:         savedInstrumentation = instrumentation;
> 40: 
> 41:         LOGGER.log(Level.WARNING, "JavaAgentTransformer::premain() is 
> finished");

Just curious why not use `Level.INFO` instead. Is it because the log won't be 
printed with product build if `Level.INFO` is used?

-------------

Marked as reviewed by ccheung (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/26374#pullrequestreview-3034175116
PR Review Comment: https://git.openjdk.org/jdk/pull/26374#discussion_r2216471537

Reply via email to