Hi Brian,

 

many thanks for opening this issue! I agree with Alan that adding an OpenOption 
would be a good possibility. In any case, as Files only contains static 
methods, we could still add a “utility” method that forces file/directory 
buffers to disk, that just uses the new open option under the hood. By that 
FileSystem SPI interfaces do not need to be modified and just need to take care 
about the new OpenOption (if supported).

 

There is one additional issue we found recently on MacOSX, but this is only 
slightly related to the one here. It looks like on MacOSX, FileChannel#force is 
mostly a noop regarding syncing data to disk, because the underlying operating 
system requires a “special” fnctl to force buffers to disk device:

 

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/fsync.2.html:

     For applications that require tighter guarantees about the integrity of 
their data, Mac OS X provides

     the F_FULLFSYNC fcntl.  The F_FULLFSYNC fcntl asks the drive to flush all 
buffered data to permanent

     storage.  Applications, such as databases, that require a strict ordering 
of writes should use F_FULLFSYNC

     to ensure that their data is written in the order they expect.  Please see 
fcntl(2) for more

     detail.

 

This different behavior breaks the guarantees of FileChannel#force on MacOSX 
(as described in Javadocs). So the MacOSX FileSystemProvider implementation 
should use this special fnctl to force file buffers to disk.

 

Should I open a bug report on bugs.sun.com?

 

Uwe

 

-----

Uwe Schindler

[email protected] 

ASF Member, Apache Lucene PMC / Committer

Bremen, Germany

http://lucene.apache.org/

 

From: nio-dev [mailto:[email protected]] On Behalf Of Brian 
Burkhalter
Sent: Wednesday, May 13, 2015 12:26 AM
To: nio-dev
Cc: [email protected]; [email protected]; Balchandra Vaidya
Subject: Re: Recent Java 9 commit (e5b66323ae45) breaks fsync on directory

 

I have created an enhancement issue here:

 

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

 

Brian

 

On May 12, 2015, at 3:10 PM, Brian Burkhalter <[email protected]> 
wrote:





I will create an issue now and post the ID.

 

Reply via email to