On Fri, Feb 15, 2019 at 11:53 AM John Klann <jk7255@gmail.com> wrote:
>>> >> Hmm, it looks like your system gives EINVAL when you try to fsync a
>>> >> directory. Perhaps we should teach fsync__fname() about that here:
>>> >>
>>> >> /*
>>> >> * Some OSes don't allow us to fsync directories at all, so we
>>> >> can ignore
>>> >> * those errors. Anything else needs to be reported.
>>> >> */
>>> >> if (returncode != 0 && !(isdir && errno == EBADF))
>>> >> {
>>> >> fprintf(stderr, _("%s: could not fsync file \"%s\": %s\n"),
>>> >> progname, fname, strerror(errno));
>>> >> (void) close(fd);
>>> >> return -1;
>>> >> }
Here is a patch like that. Any chance you could test it? Happy to
send instructions on how to do that if necessary. Does anyone think
it'd be a bad idea to do this, and possibly even back-patch it? We
have tolerated EBADF since 7d7db18a (which OS is that for?)
--
Thomas Munro
http://www.enterprisedb.com