On Wed, Dec 13, 2017 at 4:24 PM, Andres Freund <and...@anarazel.de> wrote: > Hi, > > Buildfarm animal thrips just failed with a curious error: > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=thrips&dt=2017-12-13%2002%3A27%3A27 > > ============== shutting down postmaster ============== > pg_ctl: could not open PID file > "C:/buildfarm/buildenv/HEAD/pgsql.build/src/test/regress/./tmp_check/data/postmaster.pid": > Permission denied > > otherwise there were no failures. > > I wonder if we're not opening the file with the right options to allow > us to open it while it's opened for writes in another backend? In the > backend we do so via FILE_SHARE_READ pgwin32_open which backs open and > fopen in backend code.
Yeah, pg_ctl.c must be using fopen directly (from Windows' libc/crt). A sharing violation would indeed appear as errno == EACCES by my reading of the docs so that matches your theory. I think this code should use pgwin32_fopen on Windows. -- Thomas Munro http://www.enterprisedb.com