<div dir="ltr"><div>Hi Ashutosh,</div><div><br></div><div>Training run:</div><div>$ grep '@@ Class ' aot.map | wc -l<br>10884<br><br></div><div>Production run:</div><div>$ grep '@@ Class ' aot.map | wc -l<br>3431</div><div><br></div><div>And the sizes of the map file are different:</div><div>$ du -sh aot.map*<br>331M  aot.map<br>391M   aot.map.0<br>394M aot.map.1<br><br></div><div>The aot.map is the production run. The file aot.map.1 is the training run. </div><div><br></div><div>The aot.map.0 is for app.aot.config (app.aot is how I call my aot cache):</div><div>$ cat aot.map.0 | head<br>AOT cache map for app.aot.config<br>[header             0x0000000000000000 - 0x00000000000003d8       984 bytes]<br>$ grep '@@ Class ' aot.map.0 | wc -l<br>10606<br><br></div><div>I'm using a locally build version of Java, that's true: </div><div>$ java --version<br>openjdk 26-internal 2026-03-17<br>OpenJDK Runtime Environment (build 26-internal-adhoc.delawen.jdk)<br>OpenJDK 64-Bit Server VM (build 26-internal-adhoc.delawen.jdk, mixed mode, sharing)</div><div><br></div><div>Build from:</div><div>$ git log | head<br>commit 4b4d0cd35a32448e4b056109c502af2765766432<br>Author: Johny Jose <<a href="mailto:johny.jose@oracle.com">johny.jose@oracle.com</a>><br>Date:   Tue Oct 7 13:13:42 2025 +0000<br><br>    8365398: TEST_BUG: java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java failing intermittently<br>    <br>    Reviewed-by: msheppar, smarks, jpai<br><br></div><div>I'm confused :)</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Oct 8, 2025 at 6:31 PM Ashutosh Mehra <<a href="mailto:asmehra@redhat.com">asmehra@redhat.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 dir="ltr"><div>Hi Maria,</div><div>This is strange. I tried the same using the JavacBench app and didn't see this discrepancy in the map file generated by the assembly phase and the production run.</div><div>You may have already checked it but just to confirm if run "grep '@@ Class ' t.log | wc -l" on the map file, do you see the same difference?</div><div><br></div><div>Thanks,</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr">- Ashutosh Mehra</div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 8, 2025 at 4:36 AM María Arias de Reyna Dominguez <<a href="mailto:mariasde@redhat.com" target="_blank">mariasde@redhat.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 dir="ltr"><div>Hi!</div><div><br></div><div>I have a question.  I did a training run and generated what looks like a valid cache.</div><div><br></div><div>Summary of the number of elements (for certain types of elements) the map contains:<br>```<br>Classes in AOT Cache: 10.885<br>Methods in AOT Cache: 121.393<br>  -> ConstMethods: 121.293<br>  -> MethodCounters: 6.530 <br>  -> MethodData: 4.127 <br>ConstantPool: 10.197<br>  -> ConstantPoolCache: 10.197<br>```<br><br>And then I did a production run using the generated cache, which replaced the `aot.map` with a new one that is much smaller:<br><br>```<br>Classes in AOT Cache: 3.431<br>Methods in AOT Cache: 38.359<br>  -> ConstMethods: 38.359<br>  -> MethodCounters: 0 <br>  -> MethodData: 0 <br>ConstantPool: 3.067<br>  -> ConstantPoolCache: 3.067<br>```</div><div><br></div><div>As you can see, there are a lot of missing elements!</div><div><br>If I check the md5sum of the actual cache file before and after the production run, it stays the same. It is the AOT Cache Map which changes. Is that... supposed to happen? </div><div><br></div><div>Maybe it is a bug related to <a href="https://bugs.openjdk.org/browse/JDK-8362566" target="_blank">https://bugs.openjdk.org/browse/JDK-8362566</a> ?</div><div><br></div><div>Both map files start with `AOT cache map for app.aot`, it is not the map file for the `app.aot.config` that appears during the training run.</div><div><br></div><div>Both the training and the run were the same: just spin up an Infinispan server and shut it down after a few seconds. But I guess that's irrelevant because the aot cache file is exactly the same.</div><div><br></div><div>I could stop generating the aot map file on the production run because there is no need for it, but I forgot to remove it... and then this happened.</div><div><br></div><div><div dir="ltr" class="gmail_signature"><div dir="ltr">Kind regards,<br>María Arias de Reyna Domínguez<br>Senior Software Engineer<br>She / Her / Hers<br><a href="mailto:ariasdereyna@redhat.com" target="_blank">ariasdereyna@redhat.com</a></div></div></div></div>
</blockquote></div>
</blockquote></div>