RFR [8038333] java/lang/ref/EarlyTimeout.java failed

Mandy Chung mandy.chung at oracle.com
Wed Mar 26 17:04:51 UTC 2014

Hi Ivan,

On 3/26/2014 6:15 AM, Ivan Gerasimov wrote:
> Hello!
> The test java/lang/ref/EarlyTimeout.java, which has been recently 
> added to the repository with the fix for 6853696 has failed.
> The error message of the failure "more than one references were 
> removed from queue" seems to be misguiding.
> I suspect that the real cause of the failure could have been that both 
> child thread failed to get the reference during the specified timeout.
> Thus, nonNullRefCount may have been zero and not some value > 1.

Are you able to reproduce the test failure?  I think the test verifies 
that only one thread gets the reference is a good test.

I think the race is due to the threads get to call queue.remove as soon 
as both threads decrement the count of the latch that can be well before 
the reference is enqueued.

It'd be good to add additional information in the test to help 
diagnosing test failure.


> Here's the trivial fix:
> http://cr.openjdk.java.net/~igerasim/8038333/0/webrev/
> Sincerely yours,
> Ivan Gerasimov

More information about the core-libs-dev mailing list