On Thu, 12 Mar 2026 07:17:14 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

This pull request has now been integrated.

Changeset: 5fa3e605
Author:    Damon Fenacci <[email protected]>
URL:       
https://git.openjdk.org/valhalla/commit/5fa3e605878046e075579f6dd9f8266c5782e271
Stats:     18 lines in 2 files changed: 11 ins; 0 del; 7 mod

8377351: [lworld] runtime/clinit/ClassInitBarrier.java crashes with SIGSEGV/EAV 
with AOT class linking and --enable-preview

Reviewed-by: chagedorn, thartmann

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

PR: https://git.openjdk.org/valhalla/pull/2217

Reply via email to