RFR: 8280041: Retry loop issues in java.io.ClassCache
Aleksey Shipilev
shade at openjdk.java.net
Tue Jan 25 16:22:30 UTC 2022
On Tue, 18 Jan 2022 20:07:10 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> 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`
>
> It may not be worth it. If not, add the label "noreg-hard".
>
> It is possible for add to the test description the modules to be opened:
>
> * @modules java.base/java.io:open
>
> jtreg will add the appropriate command line args when it is compiled and run.
> There are various examples in existing test/jdk/java/io... tests.
@RogerRiggs, are you happy with tests?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7092
More information about the core-libs-dev
mailing list