RFR: 8327250: assert(!method->is_old()) failed: Should not be installing old methods [v2]

Coleen Phillimore coleenp at openjdk.org
Wed Apr 10 14:03:35 UTC 2024


> When the [JDK-8322630](https://bugs.openjdk.org/browse/JDK-8322630) ICStubs and safepoints were removed, a check to ignore redefined methods was removed (is_old() check), but that check was in the wrong place.  The LinkResolver finds a Method to call through resolution and selection and saves that Method in the returned CallInfo.  The CallInfo object is temporary until the method is stored somewhere "safe", ie somewhere redefinition knows how to replace the method with a new method or deoptimize. At any safepoint, the Method could be redefined, so the CallInfo return should check for old methods and only return the equivalent new method.
> 
> This change removes the one check in the interpreter and moves it to the CallInfo accessors.
> 
> Tested with the failing test case with options: "-Xcomp -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -XX:TieredStopAtLevel=2", all vmTestBase/nsk/jvmti tests with these options, and ran tiers 1-8.

Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:

  include jvmtiExport.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18719/files
  - new: https://git.openjdk.org/jdk/pull/18719/files/c4161ccf..0fbe2f93

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18719&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18719&range=00-01

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/18719.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18719/head:pull/18719

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


More information about the hotspot-runtime-dev mailing list