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