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
