On Thu, 28 May 2026 05:03:15 GMT, Tobias Hartmann <[email protected]> wrote:

>> The problem is that we are running out of metadata space and after the call 
>> to `ObjArrayKlass::klass_with_properties` in `ciObjArrayKlass::make_impl` we 
>> are not checking for OOMEs. We should check `HAS_PENDING_EXCEPTION` like we 
>> do just above. There's also a place in the LIR assembler that now needs to 
>> check if an unloaded klass is returned, similar to here:
>> 
>> https://github.com/openjdk/valhalla/blob/4c23f0ed5d6a89cd1e7ab8550b367bca296a9f30/src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp#L1212-L1214
>> 
>> Thanks,
>> Tobias
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Tobias Hartmann has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Dont use CompactObjectHeaders

Thanks for the review Marc! I also added `@requires vm.flagless` to the test 
because some flags disable its ability to fill up metaspace. Also 
`-XX:-UseCompactObjectHeaders` is needed for the same reason.

> Would be nice to have a more systematic way to make it less likely to forget

I guess one could add a stress flag that randomly bails out from 
`Metaspace::allocate` to trigger these rare OOMEs more frequently. But maybe 
there's a good reason for why this hasn't been done yet.

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

PR Comment: https://git.openjdk.org/valhalla/pull/2478#issuecomment-4560973164

Reply via email to