RFR: 8335120: assert(!target->can_be_statically_bound() || target == cha_monomorphic_target) failed

Dean Long dlong at openjdk.org
Tue Aug 27 16:16:35 UTC 2024


The failing test uses class redefinition, which happen at safepoints.  Because JIT compiler threads do not block safepoints, compiler threads can sometimes see multiple versions of the same method.  The above assert can fail if target and cha_monomorphic_target are different versions of the same method.  The fix is to introduce ciMethod::equals to deal with this possibility.

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

Commit messages:
 - add ciMethod::equals() to compare possibly-redefined methods

Changes: https://git.openjdk.org/jdk/pull/20730/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20730&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8335120
  Stats: 19 lines in 3 files changed: 18 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/20730.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20730/head:pull/20730

PR: https://git.openjdk.org/jdk/pull/20730


More information about the hotspot-compiler-dev mailing list