Re: Add errdetail() with PID and UID about source of termination signal - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Add errdetail() with PID and UID about source of termination signal
Date
Msg-id acd7c8a3-9646-4023-8938-d49eb9c6a3f1@dunslane.net
Whole thread Raw
In response to Re: Add errdetail() with PID and UID about source of termination signal  (Andres Freund <andres@anarazel.de>)
Responses Re: Add errdetail() with PID and UID about source of termination signal
Re: Add errdetail() with PID and UID about source of termination signal
List pgsql-hackers


On 2026-04-08 We 1:01 PM, Andres Freund wrote:
Hi,

Attached is a very rough first draft for how I think this needs to look like.

Basically, SIGNAL_INFO always will pass both the signal number and extended
information along to the signal handler. The extended information is a
postgres specific struct. If the platform can't provide the extended
information, the values are instead set to some default value indicating that
the information is not known.

With that die() (and also StatementCancelHandler, ...) can just set whatever
globals it wants, without pqsignal.c needing to know about it.

It also allows us to extend the amount of information in the future. E.g. I'd
like to log the reason for a segfault (could e.g. be an OOM kill or an umapped
region) to stderr.

The annoying thing about it is needing to change nearly all the existing
references to SIG_IGN/SIG_DFL, to avoid warnings due to mismatched types.


I agree that's annoying. The only way around it I found was via some casting to/from void* that I suspect you would find a cure worse than the disease.

I reworked your patch slightly. This version fixes the translatability issue you raised earlier, makes the TAP test from the original commit more robust, and  tries to resolve your XXX issue by moving the assignment of ProcDieSenderPid/Uid inside the "if (!proc_exit_inprogress)" block.


cheers


andrew



--
Andrew Dunstan
EDB: https://www.enterprisedb.com
Attachment

pgsql-hackers by date:

Previous
From: Dagfinn Ilmari Mannsåker
Date:
Subject: pgcrypto: remove useless px_memset() and BF_ASM
Next
From: Jim Jones
Date:
Subject: Re: Additional message in pg_terminate_backend