Re: Use standard SIGHUP and SIGTERM handlers in autoprewarm module
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
On Mon, Oct 5, 2020 at 8:04 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: > > On 2020/10/05 19:45, Bharath Rupireddy wrote: > > Hi, > > > > Autoprewarm module is using it's own SIGHUP(apw_sigterm_handler, got_sigterm) and SIGTERM(apw_sighup_handler, got_sighup) handlers which are similar to standard signal handlers(except for a difference [1]). Isn't it good to remove them and use standard SignalHandlerForConfigReload and SignalHandlerForShutdownRequest? > > > > Attaching the patch for the above changes. > > > > Looks like the commit[2] replaced custom handlers with standard handlers. > > > > Thoughts? > > +1 > > The patch looks good to me. > Thanks. > > ISTM that we can also replace StartupProcSigHupHandler() in startup.c > with SignalHandlerForConfigReload() by making the startup process use > the general shared latch instead of its own one. POC patch attached. > Thought? > I'm not quite sure whether it breaks something or not. I see that WakeupRecovery() with XLogCtl->recoveryWakeupLatch latch from the startup process is also being used in the walreceiver process. I may be wrong, but have some concern if the behaviour is different in case of EXEC_BACKEND and Windows? Another concern is that we are always using XLogCtl->recoveryWakeupLatch in shared mode, this makes sense as this latch is also being used in walrecevier. But sometimes, MyLatch is created in non-shared mode as well(see InitLatch(MyLatch)). Others may have better thoughts though. > > Probably we can also replace sigHupHandler() in syslogger.c with > SignalHandlerForConfigReload()? This would be separate patch, though. > +1 to replace sigHupHandler() with SignalHandlerForConfigReload() as the latch and the functionality are pretty much the same. WalReceiverMai(): I think we can also replace WalRcvShutdownHandler() with SignalHandlerForShutdownRequest() because walrcv->latch point to &MyProc->procLatch which in turn point to MyLatch. Thoughts? If okay, we can combine these into a single patch. I will post an updated patch soon. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Revert "Get rid of the dedicated latch for signaling the startup process".
- 00f690a23993 14.0 landed
-
Improve log message about termination of background workers.
- 98e2d58d66c8 14.0 landed
-
Use standard SIGTERM signal handler die() in test_shm_mq worker.
- ef848f4ac5a4 14.0 landed
-
Use standard SIGHUP and SIGTERM signal handlers in worker_spi.
- 2a0847720ae6 14.0 landed
-
Use standard SIGHUP and SIGTERM handlers in walreceiver.
- 1a2ae7c50fb4 14.0 landed
-
pg_prewarm: make autoprewarm leader use standard SIGHUP and SIGTERM handlers.
- 53f614f1302d 14.0 landed
-
Get rid of the dedicated latch for signaling the startup process.
- ac22929a2613 14.0 landed
-
Use standard SIGHUP handler in syslogger.
- 02d332297f9b 14.0 landed
-
Use PostgresSigHupHandler in more places.
- 1e53fe0e70f6 13.0 cited
-
Fix race condition with unprotected use of a latch pointer variable.
- 45f9d08684d9 11.0 cited
-
Remove remnants of ImmediateInterruptOK handling.
- 2505ce0be0b6 9.5.0 cited
-
Introduce Streaming Replication.
- 40f908bdcdc7 9.0.0 cited