diff options
author | Magnus Hagander <magnus@hagander.net> | 2007-02-11 11:59:26 +0000 |
---|---|---|
committer | Magnus Hagander <magnus@hagander.net> | 2007-02-11 11:59:26 +0000 |
commit | b8188e1e649a982eeb5675e0ff72971e7ab764e3 (patch) | |
tree | 975b6f4fd6cd9d9a4c18de9f4edfe038f7172a78 /src | |
parent | 4d160018d24dbbcda6a52f3e2191b40f3f920b7d (diff) | |
download | postgresql-b8188e1e649a982eeb5675e0ff72971e7ab764e3.tar.gz postgresql-b8188e1e649a982eeb5675e0ff72971e7ab764e3.zip |
Fix for early log messages during postmaster startup getting lost when
running as a service on Win32.
Per report from Harald Armin Massa.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 6 | ||||
-rw-r--r-- | src/backend/utils/error/elog.c | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 6b3bea6eb5e..2c54ad7010e 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.519 2007/02/10 14:58:54 petere Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.520 2007/02/11 11:59:25 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 diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 7568b081afd..3700c4ecdc0 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -42,7 +42,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.181 2007/01/20 21:40:25 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.182 2007/02/11 11:59:26 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 */ @@ -1693,9 +1695,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 |