BUG #14001: pg_ctl error output empty/faulty
The following bug has been logged on the website:
Bug reference: 14001
Logged by: Manuel Mathar
Email address: doublem09@googlemail.com
PostgreSQL version: 9.5.1
Operating system: Windows 7 (Enterprise), Windows 10
Description:
Error messages from pg_ctl can't be piped. Tested for 9.5.1, 9.5.0 and 9.3.5
on Windows 7 and 10.
For a simple "pg_ctl status" an error message concerning the missing "-D"
parameter should be expected. But when reading the standard error with
another program (tested with Qt's QProcess readAllStandardError) or piping
it into a file "pg_ctl status 2> out.txt" the result is empty.
Under Windows 10 error messages don't appear even in the command line (no
problem for Windows 7 here).
E.g. typing "pg_ctl status" in a cmd shell yields no output at all.
After a brief test it seems this can be fixed by correcting the negation
"if (!pgwin32_is_service())" to "if (pgwin32_is_service())" in pg_ctl.c
write_stderr(...).
Sorry if I misunderstood this or forgot important information. Feel free to
contact me if You have further questions.
Best regards,
Manuel Mathar
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
On Sat, Mar 5, 2016 at 9:00 PM, <doublem09@googlemail.com> wrote:
Under Windows 10 error messages don't appear even in the command line (no
problem for Windows 7 here).
E.g. typing "pg_ctl status" in a cmd shell yields no output at all.After a brief test it seems this can be fixed by correcting the negation
"if (!pgwin32_is_service())" to "if (pgwin32_is_service())" in pg_ctl.c
write_stderr(...).
Indeed. I don't think that this oversight from a9676139 needs much comment...
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -216,7 +216,7 @@ write_stderr(const char *fmt,...)
* On Win32, we print to stderr if running on a console, or write to
* eventlog if running as a service
*/
- if (!isatty(fileno(stderr))) /* Running as a service */
+ if (!pgwin32_is_service()) /* Running as a service */
{
Could somebody switch this condition? We should not write to the event
logs if this code is not run for a service.
--
Michael
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
Michael Paquier <michael.paquier@gmail.com> writes:
On Sat, Mar 5, 2016 at 9:00 PM, <doublem09@googlemail.com> wrote:
After a brief test it seems this can be fixed by correcting the negation
"if (!pgwin32_is_service())" to "if (pgwin32_is_service())" in pg_ctl.c
write_stderr(...).
Indeed. I don't think that this oversight from a9676139 needs much comment... --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -216,7 +216,7 @@ write_stderr(const char *fmt,...) * On Win32, we print to stderr if running on a console, or write to * eventlog if running as a service */ - if (!isatty(fileno(stderr))) /* Running as a service */ + if (!pgwin32_is_service()) /* Running as a service */ { Could somebody switch this condition? We should not write to the event logs if this code is not run for a service.
Done.
regards, tom lane
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
On Tue, Mar 8, 2016 at 12:41 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Michael Paquier <michael.paquier@gmail.com> writes:
On Sat, Mar 5, 2016 at 9:00 PM, <doublem09@googlemail.com> wrote:
After a brief test it seems this can be fixed by correcting the negation
"if (!pgwin32_is_service())" to "if (pgwin32_is_service())" in pg_ctl.c
write_stderr(...).Indeed. I don't think that this oversight from a9676139 needs much comment... --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -216,7 +216,7 @@ write_stderr(const char *fmt,...) * On Win32, we print to stderr if running on a console, or write to * eventlog if running as a service */ - if (!isatty(fileno(stderr))) /* Running as a service */ + if (!pgwin32_is_service()) /* Running as a service */ { Could somebody switch this condition? We should not write to the event logs if this code is not run for a service.Done.
Thanks..
--
Michael
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs