On Tue, 28 Jan 2025 20:14:05 GMT, Chris Plummer <cjplum...@openjdk.org> 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