Thread: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
From
Alvaro Herrera
Date:
Alvaro Herrera wrote: > Windows: Make pg_ctl reliably detect service status > > pg_ctl is using isatty() to verify whether the process is running in a > terminal, and if not it sends its output to Windows' Event Log ... which > does the wrong thing when the output has been redirected to a pipe, as > reported in bug #13592. This broke the mingw port. Looking. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
From
Alvaro Herrera
Date:
Alvaro Herrera wrote: > Alvaro Herrera wrote: > > Windows: Make pg_ctl reliably detect service status > > > > pg_ctl is using isatty() to verify whether the process is running in a > > terminal, and if not it sends its output to Windows' Event Log ... which > > does the wrong thing when the output has been redirected to a pipe, as > > reported in bug #13592. > > This broke the mingw port. Looking. A bit of grepping appears to say that I ought to patch configure.in to add AC_LIBOBJ(win32security) around line 1580 and rerun autoconf, but this seems completely at odds with the documented use of AC_LIBOBJS. Is this black magic? -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
From
Alvaro Herrera
Date:
Alvaro Herrera wrote: > Alvaro Herrera wrote: > > Alvaro Herrera wrote: > > > Windows: Make pg_ctl reliably detect service status > > > > > > pg_ctl is using isatty() to verify whether the process is running in a > > > terminal, and if not it sends its output to Windows' Event Log ... which > > > does the wrong thing when the output has been redirected to a pipe, as > > > reported in bug #13592. > > > > This broke the mingw port. Looking. > > A bit of grepping appears to say that I ought to patch configure.in to > add > AC_LIBOBJ(win32security) > around line 1580 and rerun autoconf, but this seems completely at odds > with the documented use of AC_LIBOBJS. Is this black magic? I confirmed that adding that line makes the new file get compiled. I also noticed these warnings when compiling it: In file included from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stdarg.h:1:0, from /pgsql/source/master/src/include/c.h:85, from /pgsql/source/master/src/include/postgres_fe.h:25, from /pgsql/source/master/src/port/win32security.c:17: /pgsql/source/master/src/port/win32security.c: In function ‘log_error’: /pgsql/source/master/src/port/win32security.c:37:11: warning: passing argument 1 of ‘__builtin_va_start’ from incompatiblepointer type va_start(fmt, ap); ^ /pgsql/source/master/src/port/win32security.c:37:11: note: expected ‘char **’ but argument is of type ‘const char **’ /pgsql/source/master/src/port/win32security.c:37:2: warning: second parameter of ‘va_start’ not last named argument [-Wvarargs]va_start(fmt, ap); ^ -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > I confirmed that adding that line makes the new file get compiled. I > also noticed these warnings when compiling it: > In file included from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stdarg.h:1:0, > from /pgsql/source/master/src/include/c.h:85, > from /pgsql/source/master/src/include/postgres_fe.h:25, > from /pgsql/source/master/src/port/win32security.c:17: > /pgsql/source/master/src/port/win32security.c: In function ‘log_error’: > /pgsql/source/master/src/port/win32security.c:37:11: warning: passing argument 1 of ‘__builtin_va_start’ from incompatiblepointer type > va_start(fmt, ap); > ^ I take it this code is quite untested, because what that's whining about is that the arguments of va_start() are reversed. regards, tom lane
Re: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
From
Alvaro Herrera
Date:
Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > I confirmed that adding that line makes the new file get compiled. I > > also noticed these warnings when compiling it: > > > In file included from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stdarg.h:1:0, > > from /pgsql/source/master/src/include/c.h:85, > > from /pgsql/source/master/src/include/postgres_fe.h:25, > > from /pgsql/source/master/src/port/win32security.c:17: > > /pgsql/source/master/src/port/win32security.c: In function ‘log_error’: > > /pgsql/source/master/src/port/win32security.c:37:11: warning: passing argument 1 of ‘__builtin_va_start’ from incompatiblepointer type > > va_start(fmt, ap); > > ^ > > I take it this code is quite untested, because what that's whining > about is that the arguments of va_start() are reversed. It is untested by me, yes. Pushed a fix for this problem. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status
From
Michael Paquier
Date:
On Fri, Jan 8, 2016 at 8:38 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Tom Lane wrote: >> Alvaro Herrera <alvherre@2ndquadrant.com> writes: >> > I confirmed that adding that line makes the new file get compiled. I >> > also noticed these warnings when compiling it: >> >> > In file included from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stdarg.h:1:0, >> > from /pgsql/source/master/src/include/c.h:85, >> > from /pgsql/source/master/src/include/postgres_fe.h:25, >> > from /pgsql/source/master/src/port/win32security.c:17: >> > /pgsql/source/master/src/port/win32security.c: In function ‘log_error’: >> > /pgsql/source/master/src/port/win32security.c:37:11: warning: passing argument 1 of ‘__builtin_va_start’ from incompatiblepointer type >> > va_start(fmt, ap); >> > ^ >> >> I take it this code is quite untested, because what that's whining >> about is that the arguments of va_start() are reversed. > > It is untested by me, yes. Pushed a fix for this problem. Arg, thanks! My MS 2010 compiler did not complain about that. That's a bit depressing... -- Michael