[lworld] RFR: 8264895: [lworld] assert(!InstanceKlass::cast(receiver_klass)->is_not_initialized()) failed: receiver_klass must be initialized

Tobias Hartmann thartmann at openjdk.java.net
Mon Apr 12 12:05:06 UTC 2021


We hit an assert during call resolution of C1 compiled code because the receiver klass is not linked/initialized. This can happen because C1 compiled code does not initialize the inline class at defaultvalue and call resolution does not expect uninitialized klasses (for non-inline classes, the receiver is either null or initialized).

The fix is to deoptimize at defaultvalue for now and add support for runtime patching later with [JDK-8265067](https://bugs.openjdk.java.net/browse/JDK-8265067).

Thanks,
Tobias

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

Commit messages:
 - 8264895: [lworld] assert(\!InstanceKlass::cast(receiver_klass)->is_not_initialized()) failed: receiver_klass must be initialized

Changes: https://git.openjdk.java.net/valhalla/pull/382/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=382&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8264895
  Stats: 51 lines in 2 files changed: 49 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/382.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/382/head:pull/382

PR: https://git.openjdk.java.net/valhalla/pull/382


More information about the valhalla-dev mailing list