I think the IOException suppression in IOUtils#fsync when fsyncing directories is too broad, it suppresses any IOException that occurs in this method if isDir is true. For example, it causes exceptions opening non-existent directories, if access is denied to the directory, or general filesystem errors to be suppressed. To me that feels like it could be suppressing application bugs, or at least exceptions an application would want to know about. Instead, the IOException suppression should only apply after we have successfully opened the directory. I submitted a PR to propose a change along these lines: https://github.com/apache/lucene-solr/pull/706. Please let me know what you think.