| From: | Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Add errdetail() with PID and UID about source of termination signal |
| Date: | 2026-04-16 06:08:06 |
| Message-ID: | CAKZiRmz=FgFk+ueVxOEqC+kGuJpNWvp6VYOV16oM7Bndwe1mDw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Wed, Apr 15, 2026 at 8:49 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Andrew Dunstan <andrew(at)dunslane(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jakub Wartak | 2026-04-16 06:09:43 | Re: Add errdetail() with PID and UID about source of termination signal |
| Previous Message | Soumya S Murali | 2026-04-16 05:56:09 | Re: Fix bug with accessing to temporary tables of other sessions |