[PATCH] 7052549 "(aio) AssertionError in sun.nio.ch.PendingIoCache.clearPendingIoMap (win)"

Alan Bateman Alan.Bateman at oracle.com
Mon Oct 28 08:03:51 PDT 2013


On 10/10/2013 21:28, Yuri Gaevsky wrote:
> Hello,
>
> I'm trying to follow [1] in order to propose a patch for JDK-7052549 [2].
>
> The code in clearPendingIoMap()  doesn't use 'synchronized' access to internal
> data as all other methods do and the 'assert Thread.holdsLock(this)' statement
> in the method can fail when "-esa" command-line option enabled. The proposed
> patch moves all accesses to 'pendingIoMap' and 'closePending' under synchronized
> block, and removes the 'assert !result.isDone()' statement.
>
> The patch has been verified by JCK testrun with '-esa' option.
Yuri - apologies for taking time to get back to you on this.

Just to double check, are you 100% sure that its the "assert 
Thread.holdsLock(this)" that is being being triggered? I ask because 
this method method is only every called while holding the lock. I wonder 
if instead you are seeing the "assert !result.isDone()" being triggered. 
That is what JDK-7052549 is about.

I'm also interested to know if you can duplicate this easily? If so then 
maybe we try out a few theories and get the root of this issue.

-Alan.


More information about the nio-dev mailing list