Thread: pgsql: Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.

pgsql: Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.

From
Tom Lane
Date:
Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.

Bring the signal handling for startup-packet collection into line
with the policy established in commits bedadc732 and 8e19a8264,
namely don't risk running atexit callbacks when handling SIGQUIT.

Ideally, we'd not do so for SIGTERM or timeout interrupts either,
but that change seems a bit too risky for the back branches.
For now, just improve the comments in this area to describe the risk.

Also relocate where BackendInitialize re-disables these interrupts,
to minimize the code span where they're active.  This doesn't buy
a whole lot of safety, but it can't hurt.

In passing, rename startup_die() to remove confusion about whether
it is for the startup process.

Like the previous commits, back-patch to all supported branches.

Discussion: https://postgr.es/m/1850884.1599601164@sss.pgh.pa.us

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4e10c0c8a6690d9b950a0ab1633de6c02d1a1069

Modified Files
--------------
src/backend/postmaster/postmaster.c | 104 +++++++++++++++++++++++++-----------
1 file changed, 73 insertions(+), 31 deletions(-)