Review request for 4516760: (so) Intermittent SocketException: Transport endpoint is not connected (lnx)
Alan Bateman
Alan.Bateman at Sun.COM
Fri Aug 7 18:01:03 UTC 2009
I need a reviewer for this tiny change. The shutdown(2) call fails with
ENOTCONN when the socket is not connected. This seems to have different
interpretations, at least for the case where the connection has been
reset by the peer. Solaris and Windows do not return the error for this
case, Linux does, and this can cause applications using
SocketChannel.shutdown{Input,Output} (or the adapter equivalents) to
fail intermittently. Grizzly and others have run into this. We don't see
this with classic networking because the return value isn't checked. The
proposed fix is to ignore this specific error, which is harmless because
the socket channel implementation checks the channel state before
calling shutdown. The webrev is here:
http://cr.openjdk.java.net/~alanb/4516760/webrev.00/
Thanks,
Alan.
More information about the core-libs-dev
mailing list