mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 17:01:17 +02:00
Initialize ListenSocket array earlier.
After commitb0bea38705
, syslogger prints 63 warnings about failing to close a listen socket at postmaster startup. That's because the syslogger process forks before the ListenSockets array is initialized, so ClosePostmasterPorts() calls "close(0)" 64 times. The first call succeeds, because fd 0 is stdin. This has been like this since commit9a86f03b4e
in version 13, which moved the SysLogger_Start() call to before initializing ListenSockets. We just didn't notice until commitb0bea38705
added the LOG message. Reported by Michael Paquier and Jeff Janes. Author: Michael Paquier Discussion: https://www.postgresql.org/message-id/ZOvvuQe0rdj2slA9%40paquier.xyz Discussion: https://www.postgresql.org/message-id/ZO0fgDwVw2SUJiZx@paquier.xyz#482670177eb4eaf4c9f03c1eed963e5f Backpatch-through: 13
This commit is contained in:
parent
8700851352
commit
0c10240600
@ -1157,6 +1157,17 @@ PostmasterMain(int argc, char *argv[])
|
||||
errmsg("could not remove file \"%s\": %m",
|
||||
LOG_METAINFO_DATAFILE)));
|
||||
|
||||
/*
|
||||
* Initialize input sockets.
|
||||
*
|
||||
* Mark them all closed, and set up an on_proc_exit function that's
|
||||
* charged with closing the sockets again at postmaster shutdown.
|
||||
*/
|
||||
for (i = 0; i < MAXLISTEN; i++)
|
||||
ListenSocket[i] = PGINVALID_SOCKET;
|
||||
|
||||
on_proc_exit(CloseServerPorts, 0);
|
||||
|
||||
/*
|
||||
* If enabled, start up syslogger collection subprocess
|
||||
*/
|
||||
@ -1191,15 +1202,7 @@ PostmasterMain(int argc, char *argv[])
|
||||
|
||||
/*
|
||||
* Establish input sockets.
|
||||
*
|
||||
* First, mark them all closed, and set up an on_proc_exit function that's
|
||||
* charged with closing the sockets again at postmaster shutdown.
|
||||
*/
|
||||
for (i = 0; i < MAXLISTEN; i++)
|
||||
ListenSocket[i] = PGINVALID_SOCKET;
|
||||
|
||||
on_proc_exit(CloseServerPorts, 0);
|
||||
|
||||
if (ListenAddresses)
|
||||
{
|
||||
char *rawstring;
|
||||
|
Loading…
Reference in New Issue
Block a user