6944810: (ch) Assert failure in sun.nio.ch.PendingIoCache.clearPendingIoMap [win]

Alan Bateman Alan.Bateman at oracle.com
Tue Mar 1 14:02:37 PST 2011


In the asynchronous I/O tests include tests that exercise asynchronous 
close. These have failed a couple of times on Windows. It turns out that 
two of the operations, AsynchronousFileChannel.read and 
AsynchronousSocketChannel.connect have a timing bug in that they return 
the OVERLAPPED structure to the per-channel cache after releasing the 
channel's read lock (these channels use ReadWriteLocks). This creates a 
bug with asynchronous close where it has to synthesize failure for I/O 
operations that don't abort in a timely manner. That code in turn has a 
bug where it was silently consuming the interrupt status. The webrev 
with the changes is here:
  http://cr.openjdk.java.net/~alanb/6944810/webrev/
Note that I haven't added a new test as part of this (I can add the 
bugID to the existing tests). I've also removed the tests from the 
ProblemList file.

The webrev also includes fixes to typos in AsynchronousFileChannel that 
Wolfgang Baltes mailed me off-list about.

-Alan.


More information about the nio-dev mailing list