pgsql: Rearrange postmaster's startup sequence for better sysloggerres

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Rearrange postmaster's startup sequence for better sysloggerres
Дата
Msg-id E1i84m0-00060J-OD@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Rearrange postmaster's startup sequence for better syslogger results.

This is a second try at what commit 57431a911 tried to do, namely,
launch the syslogger before we open postmaster sockets so that our
messages about the sockets end up in the syslogger files.  That
commit fell foul of a bunch of subtle issues caused by trying to
launch a postmaster child process before creating shared memory.
Rather than messing with that interaction, let's postpone opening
the sockets till after we launch the syslogger.

This would not have been terribly safe before commit 7de19fbc0,
because we relied on socket opening to detect whether any competing
postmasters were using the same port number.  But now that we choose
IPC keys without regard to the port number, there's no interaction
to worry about.

Also delay creation of the external PID file (if requested) till after
the sockets are open, since external code could plausibly be relying
on that ordering of events.  And postpone most of the work of
RemovePgTempFiles() so that that potentially-slow processing still
happens after we make the external PID file.  We have to be a bit
careful about that last though: as noted in the discussion subsequent to
bug #15804, EXEC_BACKEND builds still have to clear the parameter-file
temp dir before launching the syslogger.

Patch by me; thanks to Michael Paquier for review/testing.

Discussion: https://postgr.es/m/15804-3721117bf40fb654@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9a86f03b4e8c8f16eca7faebcb4a46330e431102

Modified Files
--------------
src/backend/postmaster/postmaster.c | 202 +++++++++++++++++++-----------------
src/backend/storage/file/fd.c       |  11 +-
src/include/storage/fd.h            |   2 +
src/include/utils/pidfile.h         |   3 +-
4 files changed, 116 insertions(+), 102 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: libpq docs: be clearer about conninfo's 'hostaddr'
Следующее
От: Michael Paquier
Дата:
Сообщение: pgsql: Improve coverage of psql for backslash commands with \if and\el