Re: Parallel worker hangs while handling errors.
vignesh C <vignesh21@gmail.com>
From: vignesh C <vignesh21@gmail.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Robert Haas <robertmhaas@gmail.com>
Date: 2020-07-28T05:35:05Z
Lists: pgsql-hackers
Attachments
- v4-0001-Fix-for-Parallel-worker-hangs-while-handling-erro.patch (text/x-patch) patch v4-0001
Thanks for your comments Bharath. On Mon, Jul 27, 2020 at 10:13 AM Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote: > 1. Do we need "worker" as a function argument in > update_parallel_worker_sigmask(BackgroundWorker *worker,.... ? Since > MyBgworkerEntry is a global variable, can't we have a local variable > instead? Fixed, I have moved the worker check to the caller function. > 2. Instead of update_parallel_worker_sigmask() serving only for > parallel workers, can we make it generic, so that for any bgworker, > given a signal it unblocks it, although there's no current use case > for a bg worker unblocking a single signal other than a parallel > worker doing it for SIGUSR1 for this hang issue. Please note that we > have BackgroundWorkerBlockSignals() and > BackgroundWorkerUnblockSignals(). Fixed. I have slightly modified the changes to break into BackgroundWorkerRemoveBlockSignal & BackgroundWorkerAddBlockSignal. This maintains the consistency similar to BackgroundWorkerBlockSignals() and BackgroundWorkerUnblockSignals(). > If okay, with the BackgroundWorkerUpdateSignalMask() function, please > note that we might have to add it in bgworker.sgml as well. Included the documentation. Attached the updated patch for the same. Regards, Vignesh EnterpriseDB: http://www.enterprisedb.com
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