RFR : 8205959 : Do not restart close if errno is EINTR
Baesken, Matthias
matthias.baesken at sap.com
Wed Jul 25 07:13:55 UTC 2018
Hello, there was some discussion on the topic in the review of https://bugs.openjdk.java.net/browse/JDK-8206145
And an outcome was that at least AIX recommends to repeat the close call on EINTR .
Best regards, Matthias
>
> Message: 4
> Date: Wed, 27 Jun 2018 18:23:36 -0500
> From: David Lloyd <dlloyd at redhat.com>
> To: Ivan Gerasimov <ivan.gerasimov at oracle.com>
> Cc: net-dev at openjdk.java.net
> Subject: Re: RFR : 8205959 : Do not restart close if errno is EINTR
> Message-ID: <7706C3A4-9F23-47A2-8196-0D0C40507C0E at redhat.com>
> Content-Type: text/plain; charset="us-ascii"
>
> According to http://man7.org/linux/man-pages/man2/close.2.html it is
> currently platform-dependent whether close() must or must not (seems to
> be no middle ground) be retried. Might have to do some #ifdef guarding?
>
> --
> - DML
>
>
> > On Jun 27, 2018, at 6:15 PM, Ivan Gerasimov <ivan.gerasimov at oracle.com>
> wrote:
> >
> > Hello!
> >
> > When closing a socket via NET_SocketClose(int fd), a close(fd) is called.
> > The later is wrapped in a retry-loop, which is wrong because close() is not
> restartable.
> >
> > The `man 2 close` states:
> > """
> > ... close() should not be retried after an EINTR since this may cause a
> reused descriptor from another thread to be closed.
> > """
> >
> > Would you please help review a trivial fix?
> >
> > BUGURL: https://bugs.openjdk.java.net/browse/JDK-8205959
> > WEBREV: http://cr.openjdk.java.net/~igerasim/8205959/00/webrev/
> >
> > Thanks in advance!
> >
> > --
> > With kind regards,
> > Ivan Gerasimov
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://mail.openjdk.java.net/pipermail/net-
> dev/attachments/20180627/07adf407/attachment.html>
>
More information about the net-dev
mailing list