Hi, On 2023-11-28 15:39:55 -0600, Nathan Bossart wrote: > From e4bea5353c2685457545b67396095e9b96156982 Mon Sep 17 00:00:00 2001 > From: Nathan Bossart <nat...@postgresql.org> > Date: Tue, 28 Nov 2023 14:58:20 -0600 > Subject: [PATCH v3 1/3] Check that MyProcPid == getpid() in all signal > handlers. > > In commit 97550c0711, we added a similar check to the SIGTERM > handler for the startup process. This commit adds this check to > all signal handlers installed with pqsignal(). This is done by > using a wrapper function that performs the check before calling the > actual handler. > > The hope is that this will offer more general protection against > child processes of Postgres backends inadvertently modifying shared > memory due to inherited signal handlers. Another potential > follow-up improvement is to use this wrapper handler function to > restore errno instead of relying on each individual handler > function to do so. > > This commit makes the changes in commit 97550c0711 obsolete but > leaves reverting it for a follow-up commit.
For a moment I was, wrongly, worried this would break signal handlers we intentionally inherit from postmaster. It's fine though, because we block signals in fork_process() until somewhere in InitPostmasterChild(), after we've called InitProcessGlobals(). But perhaps that should be commented upon somewhere? Greetings, Andres Freund