Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 10 Sep 2020 16:06:26 +0000 (12:06 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 10 Sep 2020 16:06:37 +0000 (12:06 -0400)
commit58c6feccfae1321ea4ff16c535c6f3fb90a07d69
tree50f8e90e64d5629cd46d9fed311151a38227e5b5
parent34a947ca13e52389eb3e81f1ceb38e592ad53110
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
src/backend/postmaster/postmaster.c