On Fri, 13 Mar 2026 15:25:18 GMT, Damon Fenacci <[email protected]> wrote:

>> # Issue
>> AOT‑cached c2i adapters can mis-handle inline‑buffer oops when the JVM runs 
>> with a different compressed‑oops mode than the one used when the AOT cache 
>> was created, leading to wrong object decoding and test failures/crashes.
>> 
>> # Cause
>> Adapters only need this special handling in Valhalla because inline types 
>> are flattened and require heap buffers during c2i transitions, which are 
>> decoded inside the adapter. If the runtime compressed‑oops settings 
>> (UseCompressedOops, shift, base) differ from the AOT‑creation settings, the 
>> adapter decodes those oops incorrectly (non‑Valhalla adapters don’t decode 
>> inline‑buffer oops, so they don’t hit this path).
>> 
>> # Fix
>> During AOT cache verification, if we detect any mismatch in compressed‑oops 
>> flag, shift, or base, we disable AOT adapter caching, forcing adapters to be 
>> regenerated at runtime with the correct configuration (this mirrors what the 
>> VM already does for AOT stub caching). Logging has been slightly modified 
>> for consistency.
>> 
>> # Testing
>> Tier 1-3+
>> JBS issue failing tests using `--enable-preview`
>> `test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java`
>>  had to be adapted to reflect the modified log
>
> Damon Fenacci has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Update src/hotspot/share/code/aotCodeCache.cpp
>   
>   Co-authored-by: Tobias Hartmann <[email protected]>

Marked as reviewed by thartmann (Committer).

Still good.

Btw. could [JDK-8379913](https://bugs.openjdk.org/browse/JDK-8379913) be 
related to this?

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

PR Review: 
https://git.openjdk.org/valhalla/pull/2217#pullrequestreview-3944928483
PR Comment: https://git.openjdk.org/valhalla/pull/2217#issuecomment-4056029652

Reply via email to