RFR: 8232861: (fc) FileChannel.force fails on WebDAV file systems (macOS) [v2]

Brian Burkhalter bpb at openjdk.java.net
Wed Apr 7 16:37:27 UTC 2021


> Apparently `fcntl(fd, F_FULLFSYNC)` can fail with `ENOTTY` in addition to `ENOTSUP` although it is not so documented. The `ioctl()` case is documented as
> [ENOTTY]       fildes is not associated with a character special
>                device.
> [ENOTTY]       The specified request does not apply to the kind of
>                object that the descriptor fildes references.
> 
> This request proposes to catch `ENOTTY` as well and fall back to `fsync(fd)`. The change was verified manually using a WebDAV server and no failures in CI test tiers 1-3 were observed. An alternative would be to fall back to `fsync(fd)` for **all** errors.

Brian Burkhalter has updated the pull request incrementally with one additional commit since the last revision:

  8232861: Fallback on F_FULLSYNC if file is remote instead of if errno is ENOTTY

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3366/files
  - new: https://git.openjdk.java.net/jdk/pull/3366/files/cbb1ba92..cb13e940

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3366&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3366&range=00-01

  Stats: 15 lines in 1 file changed: 10 ins; 0 del; 5 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3366.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3366/head:pull/3366

PR: https://git.openjdk.java.net/jdk/pull/3366


More information about the nio-dev mailing list