[jdk11u-dev] RFR: 8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror" [v2]

Zhengyu Gu zgu at openjdk.java.net
Mon Dec 6 14:48:48 UTC 2021


> This patch redoes JDK-8274338 backport to openjdk 11u.
> 
> Early backport failed and was backout. The failure was due to `CLD::loaded_classes_do()`, now requires to hold `MultiArray_lock`, therefore, the closure  `LinkSharedClassesClosure` can not trigger `JavaCall` while holding a lock.
> 
> The solution is to borrow `CollectCLDClosure` from JDK-8251860 to collect loaded CLD, then walk then without `MultiArray_lock`.
> 
> The patch also pulled in some supporting methods/classes, such as `CLDG::loaded_cld_do()` from JDK-8213751 and `ClassLoaderDataGraphIterator` from JDK-8209645, etc.
> 
> Additional changes to get `CollectCLDClosure` to work in 11u:
> - Changed `CLD::holder_phantom()` to `public` as JDK head
> - Used `JNI local ref` to keep `CLD` alive
> 
> Test:
> - [x] hotspot_appcds 
> - [x] tier1

Zhengyu Gu has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - Merge branch 'master' into backport-8274338-redo
 - revert some changes
 - Fix leading whitespace
 - release local refs
 - keep CLD alive
 - Backport 172aed1a2d75756b140cb723133ac5fb67f7745e

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

Changes:
  - all: https://git.openjdk.java.net/jdk11u-dev/pull/632/files
  - new: https://git.openjdk.java.net/jdk11u-dev/pull/632/files/dba68ee5..99a8abaf

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk11u-dev&pr=632&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk11u-dev&pr=632&range=00-01

  Stats: 411012 lines in 2910 files changed: 202202 ins; 208487 del; 323 mod
  Patch: https://git.openjdk.java.net/jdk11u-dev/pull/632.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk11u-dev pull/632/head:pull/632

PR: https://git.openjdk.java.net/jdk11u-dev/pull/632


More information about the jdk-updates-dev mailing list