RFC 7038914: VM could throw uncaught OOME in ReferenceHandler thread
Thomas Schatzl
thomas.schatzl at oracle.com
Mon May 13 11:55:08 UTC 2013
Hi all,
On Fri, 2013-05-10 at 12:52 +0200, Peter Levart wrote:
> Hi David, Thomas,
>
> I think I understand you now, David. You want to minimize the
> possibility of vacuously passing the test. So here's my attempt at that:
>
>
> public class OOMEInReferenceHandler {
> static Object[] fillHeap() {
> Object[] first = null, last = null;
> int size = 1 << 20;
> while (size > 0) {
> try {
> [... new reproducer ...]
> [...]
>
> To be sure the order of class referencing in handlers is not disturbed
> by changes in compilers, I suggest the patch to be modified to this more
> explicit variant:
>
> try {
> try {
> lock.wait();
> } catch (InterruptedException x) { }
> } catch (OutOfMemoryError x) {}
>
>
> ..which also passes the test.
I updated the test program and the patch in java.lang.ref.Reference
accordingly.
As for the problem of reproducibility, in my tests I had a 100%
reproduction rate with the previous version of the test.
However, now I also set -XX:-UseTLAB and -Xmx16M in the test program as
suggested in some other emails.
I will report back with a new webrev after some testing on more
platforms as suggested by David.
Hth,
Thomas
More information about the core-libs-dev
mailing list