Re: pg_ctl on windows can't open postmaster.pid: Permission denied

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl on windows can't open postmaster.pid: Permission denied
Date: 2017-12-13 04:01:09
Message-ID: CAEepm=1SX0z42zxkg+kaoNNWnsNKbzHVw4nooc0DGZ=5ObPV-A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Dec 13, 2017 at 4:24 PM, Andres Freund <andres(at)anarazel(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2017-12-13 04:10:01 Re: Using ProcSignal to get memory context stats from a running backend
Previous Message Michael Paquier 2017-12-13 03:59:37 Re: plpgsql test layout