RFR: 8348800: Many serviceability/sa tests failing after JDK-8348239

Aleksey Shipilev shade at openjdk.org
Tue Jan 28 19:45:56 UTC 2025


On Tue, 28 Jan 2025 19:14:56 GMT, Chris Plummer <cjplummer at 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.

Looks fine, but I have a minor suggestion:

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java line 161:

> 159:         /* Only add DeoptimizeObjectsALotThread if it is actually present in the type database. */
> 160:         try {
> 161:             db.lookupType("DeoptimizeObjectsALotThread");

I see there is `public Type lookupType(String cTypeName, boolean throwException);`, so this might be more accurately, without over-catching the exceptions:


  if (db.lookupType("DeoptimizeObjectsALotThread", false) != null) {
     virtualConstructor.addMapping("DeoptimizeObjectsALotThread", DeoptimizeObjectsALotThread.class);
  }


?

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

PR Review: https://git.openjdk.org/jdk/pull/23339#pullrequestreview-2579255107
PR Review Comment: https://git.openjdk.org/jdk/pull/23339#discussion_r1932761452


More information about the serviceability-dev mailing list