pgsql: Do ClosePostmasterPorts() earlier in SubPostmasterMain().
От | Tom Lane |
---|---|
Тема | pgsql: Do ClosePostmasterPorts() earlier in SubPostmasterMain(). |
Дата | |
Msg-id | E1bqRd6-00067H-CL@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Do ClosePostmasterPorts() earlier in SubPostmasterMain(). In standard Unix builds, postmaster child processes do ClosePostmasterPorts immediately after InitPostmasterChild, that is almost immediately after being spawned. This is important because we don't want children holding open the postmaster's end of the postmaster death watch pipe. However, in EXEC_BACKEND builds, SubPostmasterMain was postponing this responsibility significantly, in order to make it slightly more convenient to pass the right flag value to ClosePostmasterPorts. This is bad, particularly seeing that process_shared_preload_libraries() might invoke nearly-arbitrary code. Rearrange so that we do it as soon as we've fetched the socket FDs via read_backend_variables(). Also move the comment explaining about randomize_va_space to before the call of PGSharedMemoryReAttach, which is where it's relevant. The old placement was appropriate when the reattach happened inside CreateSharedMemoryAndSemaphores, but that was a long time ago. Back-patch to 9.3; the patch doesn't apply cleanly before that, and it doesn't seem worth a lot of effort given that we've had no actual field complaints traceable to this. Discussion: <4157.1475178360@sss.pgh.pa.us> Branch ------ REL9_4_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/475866f08725a01aac91417fc67b725b2511f435 Modified Files -------------- src/backend/postmaster/postmaster.c | 57 ++++++++++++------------------------- 1 file changed, 18 insertions(+), 39 deletions(-)
В списке pgsql-committers по дате отправления: