Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8334515

Browse files
committed
Revert "postmaster: Start syslogger earlier".
This commit reverts 57431a9. While that's still a good idea in the abstract, we found out that there are multiple crasher bugs in it on Windows builds, making the logging_collector option unusable on Windows. There's no time left to fix these issues before 12beta1, so revert the patch to allow Windows beta testing to proceed. We'll try again at some future date. Per bug #15804 from Yulian Khodorkovskiy and additional investigation by Michael Paquier. Discussion: https://postgr.es/m/15804-3721117bf40fb654@postgresql.org
1 parent da24961 commit 8334515

File tree

1 file changed

+60
-60
lines changed

1 file changed

+60
-60
lines changed

src/backend/postmaster/postmaster.c

+60-60
Original file line numberDiff line numberDiff line change
@@ -993,66 +993,6 @@ PostmasterMain(int argc, char *argv[])
993993
*/
994994
InitializeMaxBackends();
995995

996-
/*
997-
* Initialize pipe (or process handle on Windows) that allows children to
998-
* wake up from sleep on postmaster death.
999-
*/
1000-
InitPostmasterDeathWatchHandle();
1001-
1002-
/*
1003-
* Forcibly remove the files signaling a standby promotion request.
1004-
* Otherwise, the existence of those files triggers a promotion too early,
1005-
* whether a user wants that or not.
1006-
*
1007-
* This removal of files is usually unnecessary because they can exist
1008-
* only during a few moments during a standby promotion. However there is
1009-
* a race condition: if pg_ctl promote is executed and creates the files
1010-
* during a promotion, the files can stay around even after the server is
1011-
* brought up to new master. Then, if new standby starts by using the
1012-
* backup taken from that master, the files can exist at the server
1013-
* startup and should be removed in order to avoid an unexpected
1014-
* promotion.
1015-
*
1016-
* Note that promotion signal files need to be removed before the startup
1017-
* process is invoked. Because, after that, they can be used by
1018-
* postmaster's SIGUSR1 signal handler.
1019-
*/
1020-
RemovePromoteSignalFiles();
1021-
1022-
/* Do the same for logrotate signal file */
1023-
RemoveLogrotateSignalFiles();
1024-
1025-
/* Remove any outdated file holding the current log filenames. */
1026-
if (unlink(LOG_METAINFO_DATAFILE) < 0 && errno != ENOENT)
1027-
ereport(LOG,
1028-
(errcode_for_file_access(),
1029-
errmsg("could not remove file \"%s\": %m",
1030-
LOG_METAINFO_DATAFILE)));
1031-
1032-
/*
1033-
* If enabled, start up syslogger collection subprocess
1034-
*/
1035-
SysLoggerPID = SysLogger_Start();
1036-
1037-
/*
1038-
* Reset whereToSendOutput from DestDebug (its starting state) to
1039-
* DestNone. This stops ereport from sending log messages to stderr unless
1040-
* Log_destination permits. We don't do this until the postmaster is
1041-
* fully launched, since startup failures may as well be reported to
1042-
* stderr.
1043-
*
1044-
* If we are in fact disabling logging to stderr, first emit a log message
1045-
* saying so, to provide a breadcrumb trail for users who may not remember
1046-
* that their logging is configured to go somewhere else.
1047-
*/
1048-
if (!(Log_destination & LOG_DESTINATION_STDERR))
1049-
ereport(LOG,
1050-
(errmsg("ending log output to stderr"),
1051-
errhint("Future log output will go to log destination \"%s\".",
1052-
Log_destination_string)));
1053-
1054-
whereToSendOutput = DestNone;
1055-
1056996
/* Report server startup in log */
1057997
ereport(LOG,
1058998
(errmsg("starting %s", PG_VERSION_STR)));
@@ -1248,6 +1188,12 @@ PostmasterMain(int argc, char *argv[])
12481188
*/
12491189
set_stack_base();
12501190

1191+
/*
1192+
* Initialize pipe (or process handle on Windows) that allows children to
1193+
* wake up from sleep on postmaster death.
1194+
*/
1195+
InitPostmasterDeathWatchHandle();
1196+
12511197
#ifdef WIN32
12521198

12531199
/*
@@ -1301,6 +1247,60 @@ PostmasterMain(int argc, char *argv[])
13011247
*/
13021248
RemovePgTempFiles();
13031249

1250+
/*
1251+
* Forcibly remove the files signaling a standby promotion request.
1252+
* Otherwise, the existence of those files triggers a promotion too early,
1253+
* whether a user wants that or not.
1254+
*
1255+
* This removal of files is usually unnecessary because they can exist
1256+
* only during a few moments during a standby promotion. However there is
1257+
* a race condition: if pg_ctl promote is executed and creates the files
1258+
* during a promotion, the files can stay around even after the server is
1259+
* brought up to new master. Then, if new standby starts by using the
1260+
* backup taken from that master, the files can exist at the server
1261+
* startup and should be removed in order to avoid an unexpected
1262+
* promotion.
1263+
*
1264+
* Note that promotion signal files need to be removed before the startup
1265+
* process is invoked. Because, after that, they can be used by
1266+
* postmaster's SIGUSR1 signal handler.
1267+
*/
1268+
RemovePromoteSignalFiles();
1269+
1270+
/* Do the same for logrotate signal file */
1271+
RemoveLogrotateSignalFiles();
1272+
1273+
/* Remove any outdated file holding the current log filenames. */
1274+
if (unlink(LOG_METAINFO_DATAFILE) < 0 && errno != ENOENT)
1275+
ereport(LOG,
1276+
(errcode_for_file_access(),
1277+
errmsg("could not remove file \"%s\": %m",
1278+
LOG_METAINFO_DATAFILE)));
1279+
1280+
/*
1281+
* If enabled, start up syslogger collection subprocess
1282+
*/
1283+
SysLoggerPID = SysLogger_Start();
1284+
1285+
/*
1286+
* Reset whereToSendOutput from DestDebug (its starting state) to
1287+
* DestNone. This stops ereport from sending log messages to stderr unless
1288+
* Log_destination permits. We don't do this until the postmaster is
1289+
* fully launched, since startup failures may as well be reported to
1290+
* stderr.
1291+
*
1292+
* If we are in fact disabling logging to stderr, first emit a log message
1293+
* saying so, to provide a breadcrumb trail for users who may not remember
1294+
* that their logging is configured to go somewhere else.
1295+
*/
1296+
if (!(Log_destination & LOG_DESTINATION_STDERR))
1297+
ereport(LOG,
1298+
(errmsg("ending log output to stderr"),
1299+
errhint("Future log output will go to log destination \"%s\".",
1300+
Log_destination_string)));
1301+
1302+
whereToSendOutput = DestNone;
1303+
13041304
/*
13051305
* Initialize stats collection subsystem (this does NOT start the
13061306
* collector process!)

0 commit comments

Comments
 (0)