Обсуждение: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status

Поиск
Список
Период
Сортировка

Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status

От
Alvaro Herrera
Дата:
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

От
Alvaro Herrera
Дата:
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

От
Alvaro Herrera
Дата:
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



Re: Re: [COMMITTERS] pgsql: Windows: Make pg_ctl reliably detect service status

От
Tom Lane
Дата:
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

От
Alvaro Herrera
Дата:
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

От
Michael Paquier
Дата:
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