RFR: 8358680: AOT cache creation fails: no strings should have been added [v3]

Aleksey Shipilev shade at openjdk.org
Tue Jul 1 18:30:40 UTC 2025


On Tue, 1 Jul 2025 18:26:57 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> Background: when writing the string table in the AOT cache, we do this:
>> 
>> 1. Find out the number of strings in the interned string table
>> 2. Allocate Java object arrays that are large enough to store these strings. These arrays are used by `StringTable::lookup_shared()` in the production run.
>> 3. Enter safepoint
>> 4. Copy the strings into the arrays
>> 
>> This bug happened because:
>> 
>> - Step 1 is not thread safe, so it may be reading a stale version of `_items_count`
>> - JIT compiler threads may create more interned strings after step 1
>> 
>> This PR attempts to fix both issues.
>
> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Use bool for _disable_interning_during_cds_dump

All right. Someone else needs to approve as well, if we are pulling this into JDK 25.

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

Marked as reviewed by shade (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/25816#pullrequestreview-2976574469


More information about the hotspot-dev mailing list