Re: Add errdetail() with PID and UID about source of termination signal

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Chao Li <li.evan.chao@gmail.com>
Cc: Jim Jones <jim.jones@uni-muenster.de>, Andrew Dunstan <andrew@dunslane.net>, Jakub Wartak <jakub.wartak@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-09T14:47:03Z
Lists: pgsql-hackers
Hi,

On 2026-04-09 14:14:23 +0800, Chao Li wrote:
> > For uid, 0 is usually a valid value for root. So using 0 as the “unknown” value seems a bit awkward. Maybe we should instead document something like "uid is only meaningful when pid is not 0".
> > 
> 
> Forgot to mention, I got a lot of compile warnings, for example:
> ```
> parallel.c:1052:20: warning: cast from 'void (*)(int)' to 'pqsigfunc' (aka 'void (*)(int, struct pg_signal_info *)') converts to incompatible function type [-Wcast-function-type-mismatch]
>  1052 |         pqsignal(SIGPIPE, PG_SIG_IGN);
>       |                           ^~~~~~~~~~
> ../../../src/include/port.h:551:20: note: expanded from macro 'PG_SIG_IGN'
>   551 | #define PG_SIG_IGN (pqsigfunc) SIG_IGN
>       |                    ^~~~~~~~~~~~~~~~~~~
> 4 warnings generated.
> ```

That's an annoying warning, GAH. Can't imagine this is the only thing it
complains about. Yes, compiler, I put a cast there, because I did actually
want to cast, thanks.

I guess we'll have to define PG_SIG_IGN to 1 and PG_SIG_DFL to 0 ourselves.

Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Only show signal-sender PID/UID detail in server log

  2. Make psql DETAIL line test unconditionally optional.

  3. Rework signal handler infrastructure to pass sender info as argument.

  4. Add errdetail() with PID and UID about source of termination signal.