RFR: 8256811: Delayed/missed jdwp class unloading events [v3]

Zhengyu Gu zgu at openjdk.org
Thu Jun 23 12:34:59 UTC 2022


> Currently, jdi only check and process class unloading event when it detects a new GC cycle.
> 
> After [JDK-8212879](https://bugs.openjdk.org/browse/JDK-8212879), posting class events can overlap with GC finish event, that results, sometimes, it only captures partial or even empty unloaded class list. The pending list usually can be flushed out at next GC cycle. But for the classes unloaded during the last GC cycle, the class unloading events may lost forever.
> 
> This patch checks and processes class unloading events unconditionally, suggested by @kbarrett, the last pending unloaded class list can be flushed by other events, such as `VM_DEATH`.
> 
> It also performs `commonRef_compact()` only when there are classes unloaded.
> 
> New test failed about 20% without patch, none with patch.

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 18 additional commits since the last revision:

 - Improve naming and cleanup
 - Merge branch 'master' into JDK-8256811-jdi-missing-class-unloading-event
 - v4
 - v3
 - v2
 - Merge branch 'master' into JDK-8256811-jdi-missing-class-unloading-event
 - Merge branch 'jdi_tmp' into JDK-8256811-jdi-missing-class-unloading-event
 - v0
 - v2
 - v1
 - ... and 8 more: https://git.openjdk.org/jdk/compare/1bded2dc...559b4bf1

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/9168/files
  - new: https://git.openjdk.org/jdk/pull/9168/files/89da788e..559b4bf1

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

  Stats: 12263 lines in 93 files changed: 577 ins; 2400 del; 9286 mod
  Patch: https://git.openjdk.org/jdk/pull/9168.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9168/head:pull/9168

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


More information about the serviceability-dev mailing list