Обсуждение: pgsql: Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.

Поиск
Список
Период
Сортировка

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

От
Tom Lane
Дата:
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_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/ac695b8f2d11604d83a1d0cd45b524314eb58b97

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