Sending SIGABRT to child processes (was Re: Strange failure on mamba)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Thomas Munro <thomas.munro@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-11-18T18:48:14Z
Lists: pgsql-hackers
Attachments
- optionally-kill-child-processes-with-SIGABRT-v1.patch (text/x-diff) patch v1
Andres Freund <andres@anarazel.de> writes: > On 2022-11-17 17:47:50 -0500, Tom Lane wrote: >> So I'd like to have some way to make the postmaster send SIGABRT instead >> of SIGKILL in the buildfarm environment. The lowest-tech way would be >> to drive that off some #define or other. We could scale it up to a GUC >> perhaps. Adjacent to that, I also wonder whether SIGABRT wouldn't be >> more useful than SIGSTOP for the existing SendStop half-a-feature --- >> the idea that people should collect cores manually seems mighty >> last-century. > I suspect that having a GUC would be a good idea. I needed something similar > recently, debugging an occasional hang in the AIO patchset. I first tried > something like your #define approach and it did cause a problematic flood of > core files. Yeah, the main downside of such a thing is the risk of lots of core files accumulating over repeated crashes. Nonetheless, I think it'll be a useful debugging aid. Here's a proposed patch. (I took the opportunity to kill off the long-since-unimplemented Reinit switch, too.) One thing I'm not too clear on is if we want to send SIGABRT to the child groups (ie, SIGABRT grandchild processes too). I made signal_child do so here, but perhaps it's overkill. regards, tom lane
Commits
-
Provide options for postmaster to kill child processes with SIGABRT.
- 51b5834cd53f 16.0 landed
-
On NetBSD, force dynamic symbol resolution at postmaster start.
- 8acd8f8690ed 16.0 cited