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

From Jakub Wartak
Subject Re: Add errdetail() with PID and UID about source of termination signal
Date
Msg-id CAKZiRmz=FgFk+ueVxOEqC+kGuJpNWvp6VYOV16oM7Bndwe1mDw@mail.gmail.com
Whole thread
In response to Re: Add errdetail() with PID and UID about source of termination signal  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Wed, Apr 15, 2026 at 8:49 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Andrew Dunstan <andrew@dunslane.net> writes:
> > On 2026-04-15 We 12:04 PM, Tom Lane wrote:
> >> As a short-term fix, we could just go back to allowing the regex to
> >> consider the match optional.
>
> > Ok, so we can get the buildfarm green I'll go and do that. But I think
> > we should have an open item to tighten the test.
>
> I did some more digging, and got this from Google's AI Mode:
>
> -----
> openbsd does not fill siginfo_t si_pid for SIGTERM
>
> On OpenBSD, si_pid is indeed not guaranteed to be filled for SIGTERM
> (and many other signals), even when using SA_SIGINFO. This is a known
> architectural behavior of the OpenBSD kernel rather than a bug.
>
> Why si_pid is zero or empty
>
> Minimalist Kernel Design: Unlike Linux, which often populates si_pid
> and si_uid for most user-sent signals, the OpenBSD kernel only
> guarantees these fields for specific signals where they are
> functionally required by POSIX, such as SIGCHLD.
>
> Security & Information Leakage: OpenBSD has a history of limiting
> information available across process boundaries to prevent
> side-channel attacks or unnecessary information leaks about other
> processes on the system [0.31].
>
> Signal Queueing: Standard signals like SIGTERM are not "queued" with
> data in the same way real-time signals (which OpenBSD does not fully
> support in the same manner as Linux) would be.
> -----
>
> Now, none of the links it provided in support of these claims say
> any such thing AFAICS, so maybe this is all an AI hallucination.
> We could probably look into the OpenBSD kernel to check it, if we
> were sufficiently motivated.  But I'm inclined to believe it and
> just say "this info is not available on all platforms, even some
> that HAVE_SA_SIGINFO".

Hi Tom,

It seems to be not a hallucination: it appears that they do initsiginfo() [1]
which zeros out struct siginfo_t without setting si_pid there. The
only reference about si_pid is that their waitid(2) fills it properly
and that's visibile in their dowait*() kernel-side implementation
too.

-J.

[1] - https://github.com/openbsd/src/blob/master/sys/kern/kern_sig.c#L2166



pgsql-hackers by date:

Previous
From: Soumya S Murali
Date:
Subject: Re: Fix bug with accessing to temporary tables of other sessions
Next
From: Jakub Wartak
Date:
Subject: Re: Add errdetail() with PID and UID about source of termination signal