BUG #16259: Cannot Use "pg_ctl start -l logfile" on Clean Install on Windows Server 2012/2016
От | PG Bug reporting form |
---|---|
Тема | BUG #16259: Cannot Use "pg_ctl start -l logfile" on Clean Install on Windows Server 2012/2016 |
Дата | |
Msg-id | 16259-c5ebed32a262a8b1@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #16259: Cannot Use "pg_ctl start -l logfile" on Clean Install on Windows Server 2012/2016
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 16259 Logged by: Jonathan Katz Email address: jkatz@postgresql.org PostgreSQL version: 12.2 Operating system: Windows Server 2012, Windows Server 2016 Description: Hi, When testing PostgreSQL 12.2 on Windows built using MSVC (this potentially affects mingw too, though untested) on both Windows Server 2012 & 2016, we are having issues with a newly generated log file on a fresh PostgreSQL cluster when PostgreSQL is started with pg_ctl. If the log file was created with a prior version of PostgreSQL, or if you manually create the log file and grant the executing user the appropriate file access permissions, everything works fine. In other words, the issue occurs when passing a file name to the `-l` flag where the log file does not already exist. The steps to reproduce this are: 1. Install a PostgreSQL 12.2 Windows build on a Windows Server 2012 or a Windows Server 2016 machien 2. Run initdb to initialize a new PostgreSQL cluster 3. Run `pg_ctl start -l logfile` where "logfile" does not currently exist The resulting output should look like: Access is denied. waiting for server to start... stopped waiting pg_ctl: could not start server Examine the log output. If you try to look at the logfile you will see that it is completely empty. If you then change the permissions to grant the current user full access to the logfile and run the above command again it will start without any issues. We think this was introduced in 0da33c76. One approach for a fix would be to add a condition so the added code only executes if the file already exists, and if the file does not exist it executes the "snprintf" command like before. Please let me know if you need any clarifications. Thanks! Jonathan
В списке pgsql-bugs по дате отправления: