Re: BUG #16154: pg_ctl restart with a logfile fails sometimes (on Windows)
Alexander Law <exclusion@gmail.com>
From: Alexander Law <exclusion@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-12-07T16:00:01Z
Lists: pgsql-bugs
07.12.2019 15:36 Amit Kapila <amit.kapila16@gmail.com>: On Fri, Dec 6, 2019 at 1:30 PM Alexander Lakhin <exclusion@gmail.com> wrote: > > If this file is still opened by the previous server shell (it can happen when the previous server instance has unlinked it's pid file, but it's CMD shell is still running), the next CMD start fails with the aforementioned error message. > What is the reason for the previous shell still accessing logfile? Is the reason that we don't close it before unlinking the pid file? We can't close the logfile, as it is opened by CMD, not by the postgres process. (Postmaster is started by the command "CMD.EXE /C postgres ... >logfile".) So it is closed by the CMD shell after the postgres process exits and the postgres can't control this (as a child process). Best regards, Alexander
Commits
-
In pg_ctl, work around ERROR_SHARING_VIOLATION on the postmaster log file.
- be9d4b928060 12.2 landed
- 0da33c762b85 13.0 landed