Re: Parallel worker hangs while handling errors.
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-08-07T18:00:34Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes: > On Fri, Aug 7, 2020 at 12:56 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> That SETMASK call will certainly unblock SIGQUIT, so I don't see what >> your point is. > I can't figure out if you're trolling me here or what. It's true that > the PG_SETMASK() call will certainly unblock SIGQUIT, but that would > also be true if the sigdelset() call were absent. The point of the sigdelset is that if somewhere later on, we install the BlockSig mask, then SIGQUIT will remain unblocked. You asserted upthread that noplace in these processes ever does so; maybe that's true today, or maybe not, but the intent of this code is that *once we get through initialization* SIGQUIT will remain unblocked. I'll concede that it's not 100% clear whether or not these processes need to re-block SIGQUIT during error recovery. I repeat, though, that I'm disinclined to change that without some evidence that there's actually a problem with the way it works now. regards, tom lane
Commits
-
Centralize setup of SIGQUIT handling for postmaster child processes.
- 44fc6e259b79 14.0 landed
-
Accept SIGQUIT during error recovery in auxiliary processes.
- 7634bd4f6d38 14.0 landed
-
Avoid lockup of a parallel worker when reporting a long error message.
- be4b0c0077e6 14.0 landed
- 82dd373f2c56 12.5 landed
- 526df0a236df 11.10 landed
- 3738651f5b82 9.5.24 landed
- 2a938c7935cf 10.15 landed
- 2500e51e7bdc 9.6.20 landed
- 17424e79d979 13.0 landed