RFR: 8280041: Retry loop issues in java.io.ClassCache [v2]
Aleksey Shipilev
shade at openjdk.java.net
Wed Jan 19 08:22:59 UTC 2022
> JDK-8277072 introduced java.io.ClassCache, but there seem to be at least two issues with it:
> - The cache cannot disambiguate between cleared SoftReference and the accidental passing of `null` value; in that case, the retry loop would spin indefinitely;
> - If retry loop would spin several times, every time discovering a cleared SoftReference, it would create and register new SoftReference on the ReferenceQueue. However, it would not *drain* the RQ in the loop; in that case, we might have the unbounded garbage accumulating in RQ;
>
> Attention @rkennke, @plevart.
>
> Additional testing:
> - [x] Linux x86_64 fastdebug `java/io/ObjectStreamClass`
> - [x] Linux x86_64 fastdebug `tier1`
> - [x] Linux x86_64 fastdebug `tier2`
> - [x] Linux x86_64 fastdebug `tier3`
Aleksey Shipilev 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 four additional commits since the last revision:
- GC sanity test
- NullValueTest
- Merge branch 'master' into JDK-8280041-classcache-problems
- Fix
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/7092/files
- new: https://git.openjdk.java.net/jdk/pull/7092/files/14835de6..88d23af1
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7092&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7092&range=00-01
Stats: 1925 lines in 92 files changed: 1467 ins; 230 del; 228 mod
Patch: https://git.openjdk.java.net/jdk/pull/7092.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/7092/head:pull/7092
PR: https://git.openjdk.java.net/jdk/pull/7092
More information about the core-libs-dev
mailing list