On Wed, Apr 15, 2026 at 8:49 PM Tom Lane <[email protected]> wrote: > > Andrew Dunstan <[email protected]> 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
