RFR: 8267947: CI: Preserve consistency between has_subklass() and is_subclass_of()

Vladimir Ivanov vlivanov at openjdk.java.net
Mon May 31 09:02:30 UTC 2021


CI caches `Klass::subklass() != NULL` query, but concurrent class loading can
invalidate the cached value. Though recorded dependency won't let the nmethod
to be installed, the inconcistency can manifest as type paradoxes until
compilation is finished. 

The fix caches only `true` value (since it can't change unless class unloading
takes place) and queries the VM otherwise.

Testing:
- [x] hs-tier1 - hs-tier6

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

Commit messages:
 - 8267947: CI: Preserve consistency between has_subklass() and is_subclass_of()

Changes: https://git.openjdk.java.net/jdk/pull/4269/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4269&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8267947
  Stats: 41 lines in 2 files changed: 27 ins; 7 del; 7 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4269.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4269/head:pull/4269

PR: https://git.openjdk.java.net/jdk/pull/4269


More information about the hotspot-compiler-dev mailing list