Use FD_CLOEXEC on ListenSockets

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: b0bea38705b2d14e57d353a701ecfdb8a04983b1
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2023-08-24T14:03:05Z
Releases: 17.0
Use FD_CLOEXEC on ListenSockets

It's good hygiene if e.g. an extension launches a subprogram when
being loaded. We went through some effort to close them in the child
process in EXEC_BACKEND mode, but it's better to not hand them down to
the child process in the first place. We still need to close them
after fork when !EXEC_BACKEND, but it's a little simpler.

In the passing, LOG a message if closing the client connection or
listen socket fails. Shouldn't happen, but if it does, would be nice
to know.

Reviewed-by: Tristan Partin, Andres Freund, Thomas Munro
Discussion: https://www.postgresql.org/message-id/7a59b073-5b5b-151e-7ed3-8b01ff7ce9ef@iki.fi

Files

PathChange+/−
src/backend/libpq/pqcomm.c modified +5 −1
src/backend/postmaster/postmaster.c modified +6 −8

Discussion