mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
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.2.
This commit is contained in:
parent
d6c1e1682c
commit
9c6cfdc239
@ -37,7 +37,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.505.2.2 2007/02/08 17:04:48 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.505.2.3 2007/02/11 15:12:21 mha Exp $
|
||||
*
|
||||
* NOTES
|
||||
*
|
||||
@ -202,8 +202,8 @@ static pid_t StartupPID = 0,
|
||||
BgWriterPID = 0,
|
||||
AutoVacPID = 0,
|
||||
PgArchPID = 0,
|
||||
PgStatPID = 0,
|
||||
SysLoggerPID = 0;
|
||||
PgStatPID = 0;
|
||||
pid_t SysLoggerPID = 0; /* Needs to be accessed from elog.c */
|
||||
|
||||
/* Startup/shutdown state */
|
||||
#define NoShutdown 0
|
||||
|
@ -42,7 +42,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.178 2006/11/28 12:54:42 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.178.2.1 2007/02/11 15:12:21 mha Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -76,6 +76,8 @@ ErrorContextCallback *error_context_stack = NULL;
|
||||
|
||||
sigjmp_buf *PG_exception_stack = NULL;
|
||||
|
||||
extern pid_t SysLoggerPID;
|
||||
|
||||
/* GUC parameters */
|
||||
PGErrorVerbosity Log_error_verbosity = PGERROR_VERBOSE;
|
||||
char *Log_line_prefix = NULL; /* format for extra log line info */
|
||||
@ -1715,9 +1717,10 @@ send_message_to_server_log(ErrorData *edata)
|
||||
* anything going there and write it to the eventlog instead.
|
||||
*
|
||||
* 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);
|
||||
else
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user