+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.baes...@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.bate...@oracle.com>
>> To: David Lloyd <david.ll...@redhat.com>, ivan.gerasi...@oracle.com
>> Cc: OpenJDK Network Dev list <net-dev@openjdk.java.net>
>> Subject: Re: RFR : 8205959 : Do not restart close if errno is EINTR
>> Message-ID: <3fd1496f-ab83-a2d5-0699-13c8b735d...@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
>> 
> 

Reply via email to