RFR: JDK-8066859 java/lang/ref/OOMEInReferenceHandler.java failed with java.lang.Exception: Reference Handler thread died
Peter Levart
peter.levart at gmail.com
Thu May 7 05:53:38 UTC 2015
This is better (fixed a data race in Cleaner.clean()):
http://cr.openjdk.java.net/~plevart/jdk9-dev/OOMEInReferenceHandler/Investigation/webrev.05/
Regards, Peter
On 05/06/2015 07:13 PM, Peter Levart wrote:
> Hi,
>
> I might have a closure for this long beard issue [1] and I'd like to
> propose a change [2].
>
> It all started with [3] discussed here [4] which resulted in the fix
> for one source of OutOfMemoryError(s) terminating ReferenceHandler
> thread. With this fix, new test was added which started failing
> intermittently indicating there is another source of
> OutOfMemoryError(s) being thrown in ReferenceHandler. At that time,
> the investigation [6] indicated that the source is "r instanceof
> Cleaner" check and so another change was pushed [5]. The issue
> JDK-8022321 is internal - I don't have a link. That change was 2-fold:
> it added code to preload and pre-initialize Cleaner and
> InterruptedException classes in ReferenceHandler.<clinit> and,
> cowardly, surrounded "r instanceof Cleaner" check with OOME exception
> handler. I'm pretty certain that pre-loading of the classes would have
> been enough. At least it would have not sprung the confusion expressed
> here [7].
> But even that was not enough to prevent intermittent failures. I
> realized that the test I devised still fails because of
> Cleaner.clean() throwing OOME. Why this is possible is discussed in
> the issue [1]. I even modified the test to reproduce such failure with
> 100% chance.
>
> So here I propose two things in [2] :
> - roll-back of the confusing "r instanceof Cleaner" OOME exception
> handling to the shape of code predating change [5].
> - add handling of OOME in the Cleaner.clean() with updated test that
> checks the behaviour.
>
> Regards, Peter
>
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8066859
> [2]
> http://cr.openjdk.java.net/~plevart/jdk9-dev/OOMEInReferenceHandler/Investigation/webrev.04/
> [3] https://bugs.openjdk.java.net/browse/JDK-8015434
> [4]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-April/016510.html
> [5] http://hg.openjdk.java.net/jdk9/dev/jdk/rev/d04102f69d46
> [6]
> https://www.mail-archive.com/core-libs-dev%40openjdk.java.net/msg23596.html
> [7] https://bugs.openjdk.java.net/browse/JDK-8055232
>
More information about the core-libs-dev
mailing list