pgsql: Try again to work around Windows' ERROR_SHARING_VIOLATION in pg_
От | Tom Lane |
---|---|
Тема | pgsql: Try again to work around Windows' ERROR_SHARING_VIOLATION in pg_ |
Дата | |
Msg-id | E1j3Nan-0003AJ-5R@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Try again to work around Windows' ERROR_SHARING_VIOLATION in pg_ctl. Commit 0da33c762 introduced an unfortunate regression in pg_ctl on Windows: if the log file specified with -l doesn't exist yet, and pg_ctl is running with Administrator privileges, then the log file might get created with permissions that prevent the postmaster from writing on it. (It seems that whether this happens depends on whether the log file is inside the user's home directory or not, and perhaps on other phase-of-the-moon conditions, which may explain why we failed to notice it sooner.) To fix, just don't create the log file if it doesn't exist yet. The case where we need to wait obviously only occurs with a pre-existing log file. In passing, switch from using fopen() to plain open(), saving a few cycles. Per bug #16259 from Jonathan Katz and Heath Lord. Back-patch to v12, as the faulty commit was. Alexander Lakhin Discussion: https://postgr.es/m/16259-c5ebed32a262a8b1@postgresql.org Branch ------ REL_12_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/de5e03f7fe737887f960fb49813cc62c2f8f3ec2 Modified Files -------------- src/bin/pg_ctl/pg_ctl.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-)
В списке pgsql-committers по дате отправления: