8206145 : dbgsysSocketClose - do not restart close if errno is EINTR [linux] - was : RE: RFR : 8205959 : Do not restart close if errno is EINTR

Baesken, Matthias matthias.baesken at sap.com
Mon Jul 2 13:44:22 UTC 2018


I created a bug  and a webrev  , please review .


https://bugs.openjdk.java.net/browse/JDK-8206145

http://cr.openjdk.java.net/~mbaesken/webrevs/8206145/


(   The other bug where a similar issue  was addressed is  https://bugs.openjdk.java.net/browse/JDK-8205959   )

Best regards, Matthias


> -----Original Message-----
> From: Thomas Stüfe [mailto:thomas.stuefe at gmail.com]
> Sent: Montag, 2. Juli 2018 12:08
> To: Baesken, Matthias <matthias.baesken at sap.com>; Langer, Christoph
> <christoph.langer at sap.com>
> Cc: serviceability-dev (serviceability-dev at openjdk.java.net) <serviceability-
> dev at openjdk.java.net>; Stuefe, Thomas <thomas.stuefe at sap.com>; net-
> dev at openjdk.java.net
> Subject: Re: RFR : 8205959 : Do not restart close if errno is EINTR
> 
> +1. Please fix this for Linux! Thanks.
> 
> On Mon, Jul 2, 2018 at 11:03 AM, Langer, Christoph
> <christoph.langer at sap.com> wrote:
> > Hi Matthias,
> >
> > forwarding to serviceability-dev, because debugging is usually discussed
> there.
> >
> > Yes, I would think this coding should be fixed, too. Can you open a bug and
> prepare a change?
> >
> > Thanks
> > Christoph
> >
> >> -----Original Message-----
> >> From: net-dev [mailto:net-dev-bounces at openjdk.java.net] On Behalf Of
> >> Norman Maurer
> >> Sent: Montag, 2. Juli 2018 10:23
> >> To: Baesken, Matthias <matthias.baesken at sap.com>
> >> Cc: Stuefe, Thomas <thomas.stuefe at sap.com>; net-
> dev at openjdk.java.net
> >> Subject: Re: RFR : 8205959 : Do not restart close if errno is EINTR
> >>
> >> +1 retry a close on EINTR has most likely not the outcome you expect and
> >> may even close a wrong FD if the same FD is reused already (as even if
> EINTR
> >> is returned it may have closed the FD)
> >>
> >> > Am 02.07.2018 um 10:17 schrieb Baesken, Matthias
> >> <matthias.baesken at sap.com>:
> >> >
> >> > Hello  ,  there is a similar pattern (attempt to restart close in case of
> EINTR)
> >> in the coding as well   in  socket_md.c   :
> >> >
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-147-    int rv;
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-148-    do {
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-149-        rv =
> >> close(fd);
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c:150:    } while
> (rv
> >> == -1 && errno == EINTR);
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-151-
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-152-    return
> rv;
> >> > src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c-153-}
> >> >
> >> > Do you think this needs adjustment   (on LINUX)  as well ?
> >> >
> >> > Best regards, Matthias
> >> >
> >> >
> >> >> Message: 2
> >> >> Date: Thu, 28 Jun 2018 18:19:46 +0100
> >> >> From: Alan Bateman <Alan.Bateman at oracle.com>
> >> >> To: David Lloyd <david.lloyd at redhat.com>,
> ivan.gerasimov at oracle.com
> >> >> Cc: OpenJDK Network Dev list <net-dev at openjdk.java.net>
> >> >> Subject: Re: RFR : 8205959 : Do not restart close if errno is EINTR
> >> >> Message-ID: <3fd1496f-ab83-a2d5-0699-13c8b735d70b at oracle.com>
> >> >> Content-Type: text/plain; charset=utf-8; format=flowed
> >> >>
> >> >>> On 28/06/2018 17:35, David Lloyd wrote:
> >> >>> :
> >> >>> Do you (or Alan) think that this might have accounted for real-world
> >> >>> connection problems?
> >> >>>
> >> >> In the file I/O area, with NFS I think, we had an issue a long time ago
> >> >> where close was retried after EIO. That issue was fixed a long time ago
> >> >> but it's one that comes to mind in this general area.
> >> >>
> >> >> -Alan
> >> >>
> >> >


More information about the serviceability-dev mailing list