<div dir="ltr"><div><div>Thanks, the first issue is the most present issue.<br><br></div>The other one may have happened, because I added an optional argument which wasn't in the training run.<br><br></div>Raymond</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Apr 25, 2025 at 2:40 PM Dan Heidinga <<a href="mailto:dan.heidinga@oracle.com">dan.heidinga@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-1232924631905389807">
<div lang="EN-CA" style="overflow-wrap: break-word;">
<div class="m_-1232924631905389807WordSection1">
<p class="MsoNormal"><span style="font-size:11pt">Thanks for reporting the issue. I see Ioi has run into the same problem with MethodHandleImpl::BindCaller and is putting together a fix in
<a href="https://bugs.openjdk.org/browse/JDK-8354890" target="_blank">https://bugs.openjdk.org/browse/JDK-8354890</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">For the second issue:<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt">I still got this error and warning:<br>
<br>
[0.026s][error][cds] CDS archive has aot-linked classes. It cannot be used when archived full module graph is not used.<br>
[0.017s][warning][cds] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Have you confirmed that the class paths are the same between the assembly phase (</span><span style="font-size:12pt">-XX:AOTMode=create)
</span><span style="font-size:11pt">and when using the cache? Confirming the “</span><span style="font-size:12pt">-Xlog:class+path=info” output from both the assembly and production runs are the same would help.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:12pt">--Dan</span><span style="font-size:11pt"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<div id="m_-1232924631905389807mail-editor-reference-message-container">
<div>
<div>
<div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm">
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<b><span style="font-size:12pt;color:black">From: </span></b><span style="font-size:12pt;color:black">leyden-dev <<a href="mailto:leyden-dev-retn@openjdk.org" target="_blank">leyden-dev-retn@openjdk.org</a>> on behalf of ski n <<a href="mailto:raymondmeester@gmail.com" target="_blank">raymondmeester@gmail.com</a>><br>
<b>Date: </b>Friday, April 25, 2025 at 4:59</span><span style="font-size:12pt;font-family:"Arial",sans-serif;color:black"> </span><span style="font-size:12pt;color:black">AM<br>
<b>To: </b><a href="mailto:leyden-dev@openjdk.org" target="_blank">leyden-dev@openjdk.org</a> <<a href="mailto:leyden-dev@openjdk.org" target="_blank">leyden-dev@openjdk.org</a>><br>
<b>Subject: </b>How to handle errors<u></u><u></u></span></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">Hi Leyden devs,<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt">I used CDS before with my Spring Boot application. I recently started to test Leyden with the recent released JDK24.01 (both GraalVM and Temurin). Likewise, I first want to test
this<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">on my local laptop (Windows 11/intel i7), and try to implement this in my CI/CD to create the cache with a training run, probably with JDK25.<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">I run the following commands:<br>
<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -jar gateway-5.1.0.jar<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<br>
D:\test\graalvm-jdk-24.0.1+9.1\bin\java -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">However, on the second command, I get these warnings/errors:<br>
<br>
D:\test\jdk-24.0.1+9\bin\java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar gateway-5.1.0.jar<br>
[0.657s][warning][cds] Skipping jdk/internal/event/Event: JFR event class<br>
[1.147s][warning][cds,heap] Archive heap points to a static field that may hold a different value at runtime:<br>
[1.148s][warning][cds,heap] Field: java/lang/invoke/MethodHandleImpl$BindCaller::CD_Object_array<br>
[1.150s][warning][cds,heap] Value: jdk.internal.constant.ArrayClassDescImpl<br>
[1.150s][warning][cds,heap] {0x0000000605959028} - klass: 'jdk/internal/constant/ArrayClassDescImpl' - flags:<br>
[1.150s][warning][cds,heap]<br>
[1.151s][warning][cds,heap] - ---- fields (total size 3 words):<br>
[1.151s][warning][cds,heap] - private final 'rank' 'I' @12 1 (0x00000001)<br>
[1.152s][warning][cds,heap] - private final 'elementType' 'Ljava/lang/constant/ClassDesc;' @16 a 'jdk/internal/constant/ClassOrInterfaceDescImpl'{0x0000000605914380} (0xc0b22870)<br>
[1.152s][warning][cds,heap] - private 'cachedDescriptorString' 'Ljava/lang/String;' @20 "[Ljava/lang/Object;"{0x0000000605959040} (0xc0b2b208)<br>
[1.152s][warning][cds,heap] --- trace begin ---<br>
[1.153s][warning][cds,heap] [ 0] {0x0000000605b73798} java.lang.Class (jdk.internal.constant.ConstantUtils::CD_Object_array)<br>
[1.153s][warning][cds,heap] [ 1] {0x0000000605959028} jdk.internal.constant.ArrayClassDescImpl<br>
[1.153s][warning][cds,heap] --- trace end ---<br>
[1.153s][warning][cds,heap]<br>
[1.154s][error ][cds,heap] Scanned 65968 objects. Found 1 case(s) where an object points to a static field that may hold a different value at runtime.<br>
[1.154s][error ][cds ] An error has occurred while writing the shared archive file.<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt">I'm not really sure if this error means I cannot use the cache, but I manually removed the java/lang/invoke/MethodHandleImpl$BindCaller from the AOTCache. After that, I can create
the cache and start my application.<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt">I still got this error and warning:<br>
<br>
[0.026s][error][cds] CDS archive has aot-linked classes. It cannot be used when archived full module graph is not used.<br>
[0.017s][warning][cds] shared class paths mismatch (hint: enable -Xlog:class+path=info to diagnose the failure)<u></u><u></u></span></p>
<div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">It seems like the cache isn't properly applied, and I don't see a lot of startup time improvement (Is there a way to properly measure the difference between a normal run, and cached run?) I did measure it with timing, and find
that cached run seems to be around 2 seconds fastes (from 8 seconds startup to 6 seconds startup). The test jar that I used can be downloaded from GitHub:<br>
<br>
<a href="https://github.com/assimbly/gateway/releases/tag/5.1.0Beta" target="_blank">https://github.com/assimbly/gateway/releases/tag/5.1.0Beta</a><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt">I am creating the AOTCache properly? And how to mitigate such warnings/errors?<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36pt"><span style="font-size:12pt">Raymond<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-right:0cm;margin-bottom:12pt;margin-left:36pt">
<span style="font-size:12pt"><u></u> <u></u></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></blockquote></div>