Fix for early log messages during postmaster startup getting lost when
running as a service on Win32. Per report from Harald Armin Massa. Backpatch to 8.1.
This commit is contained in:
parent
d6e3ae48ef
commit
b8a26a6240
@ -37,7 +37,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.475.2.6 2006/07/16 18:17:23 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.475.2.7 2007/02/11 15:12:48 mha Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
*
|
*
|
||||||
@ -211,8 +211,8 @@ static pid_t StartupPID = 0,
|
|||||||
BgWriterPID = 0,
|
BgWriterPID = 0,
|
||||||
AutoVacPID = 0,
|
AutoVacPID = 0,
|
||||||
PgArchPID = 0,
|
PgArchPID = 0,
|
||||||
PgStatPID = 0,
|
PgStatPID = 0;
|
||||||
SysLoggerPID = 0;
|
pid_t SysLoggerPID = 0; /* Needs to be accessed from elog.c */
|
||||||
|
|
||||||
/* Startup/shutdown state */
|
/* Startup/shutdown state */
|
||||||
#define NoShutdown 0
|
#define NoShutdown 0
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.167.2.1 2005/11/22 18:23:23 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.167.2.2 2007/02/11 15:12:48 mha Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -75,6 +75,8 @@ ErrorContextCallback *error_context_stack = NULL;
|
|||||||
|
|
||||||
sigjmp_buf *PG_exception_stack = NULL;
|
sigjmp_buf *PG_exception_stack = NULL;
|
||||||
|
|
||||||
|
extern pid_t SysLoggerPID;
|
||||||
|
|
||||||
/* GUC parameters */
|
/* GUC parameters */
|
||||||
PGErrorVerbosity Log_error_verbosity = PGERROR_VERBOSE;
|
PGErrorVerbosity Log_error_verbosity = PGERROR_VERBOSE;
|
||||||
char *Log_line_prefix = NULL; /* format for extra log line info */
|
char *Log_line_prefix = NULL; /* format for extra log line info */
|
||||||
@ -1701,9 +1703,10 @@ send_message_to_server_log(ErrorData *edata)
|
|||||||
* anything going there and write it to the eventlog instead.
|
* anything going there and write it to the eventlog instead.
|
||||||
*
|
*
|
||||||
* If stderr redirection is active, it's ok to write to stderr because
|
* If stderr redirection is active, it's ok to write to stderr because
|
||||||
* that's really a pipe to the syslogger process.
|
* that's really a pipe to the syslogger process. Unless we're in the
|
||||||
|
* postmaster, and the syslogger process isn't started yet.
|
||||||
*/
|
*/
|
||||||
if ((!Redirect_stderr || am_syslogger) && pgwin32_is_service())
|
if ((!Redirect_stderr || am_syslogger || (!IsUnderPostmaster && SysLoggerPID==0)) && pgwin32_is_service())
|
||||||
write_eventlog(edata->elevel, buf.data);
|
write_eventlog(edata->elevel, buf.data);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user