Re: [ADMIN] recovery is stuck when children are not processing SIGQUIT from previous crash
Peter Eisentraut <peter_e@gmx.net>
From: Peter Eisentraut <peter_e@gmx.net>
To: pgsql-hackers@postgresql.org
Cc: Marko Kreen <markokr@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2009-12-16T15:48:44Z
Lists: pgsql-hackers
Attachments
- 0001-If-there-is-no-sigdelset-define-it-as-a-macro.patch (text/x-patch)
Here is a set of patches to address this issue. The first one is a small refactoring of the signal setting portability business. The second one fixes the SIGQUIT handler inadvertently unblocking SIGQUIT within itself. The third one installs an alarm so that if the ereport() call in quickdie() doesn't finish after 60 seconds, it skips it and finishes up. The precise logic of this could be debated, but it more or less appears to get the job done.