RFR [8055421]: (fs) bad error handling in java.base/unix/native/libnio/fs/UnixNativeDispatcher.c

Alan Bateman Alan.Bateman at oracle.com
Mon Aug 25 11:25:27 UTC 2014


On 24/08/2014 21:54, Ivan Gerasimov wrote:
> Thank you Alan for the input!
>
> I've updated the webrev as you suggested:
> http://cr.openjdk.java.net/~igerasim/8055421/2/webrev/
>
> With the wrapper for close we currently ignore any error that might 
> have happened.
> Don't we want to revise it with this change?
>
> For example, note the caution on the Linux man page:
> Not  checking  the  return  value of close() is a common but 
> nevertheless serious programming error.  It is quite possible that 
> errors on a previous write(2) operation are first reported at the 
> final close().  Not checking the return value when closing the file 
> may lead to silent loss of data.
The webrev looks good and I agree that we should deal with close 
separately (as that will necessitate touching a number of areas). 
Martin's suggestion to put add a comment to UnixNativeDispatcher.fclose 
that it ignores EINTR and doesn't fflush would be useful.

I found this article useful and the issue of close vs. EINTR discussion 
has been going for years:
     http://lwn.net/Articles/576478/

-Alan.


More information about the nio-dev mailing list