On Tue, 28 Jan 2025 20:14:05 GMT, Chris Plummer <[email protected]> wrote:
>> DeoptimizeObjectsALotThread was being unconditionally added to the mapping
>> table:
>>
>> virtualConstructor.addMapping("DeoptimizeObjectsALotThread",
>> DeoptimizeObjectsALotThread.class);
>>
>> But is conditionally included in VMStructs:
>>
>> DEBUG_ONLY(COMPILER2_OR_JVMCI_PRESENT( \
>> declare_type(DeoptimizeObjectsALotThread, JavaThread))) \
>>
>> There is code that iterates over all the mapping table entries and calls
>> db.lookupType() on each. This results in a RuntimeException if the type is
>> not present in the type database:
>>
>> Caused by: java.lang.RuntimeException: No type named
>> "DeoptimizeObjectsALotThread" in database
>>
>> The fix is to not add it to the mapping table if it is not present in the
>> database.
>>
>> Testing is in progresses. I did test locally with a debug build using
>> TEST_VM_OPTS=-XX:+DeoptimizeObjectsALot to make sure the original
>> DeoptimizeObjectsALotThread issue is still fixed, and then tested a release
>> build without TEST_VM_OPTS=-XX:+DeoptimizeObjectsALot to make sure this new
>> issue did not reproduce.
>
> Chris Plummer has updated the pull request incrementally with one additional
> commit since the last revision:
>
> use lookupType() api that does not throw an exception.
Yes looks good.
-------------
Marked as reviewed by kevinw (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/23339#pullrequestreview-2579353808