mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-22 14:27:00 +08:00
Ignore SIGINT in walwriter and walsummarizer
Previously, SIGINT was treated the same as SIGTERM in walwriter and walsummarizer. That decision goes back to when the walwriter process was introduced (commit ad4295728e04), and was later copied to walsummarizer. It was a pretty arbitrary decision back then, and we haven't adopted that convention in all the other processes that have been introduced later. Summary of how other processes respond to SIGINT: - Autovacuum launcher: Cancel the current iteration of launching - bgworker: Ignore (unless connected to a database) - checkpointer: Request shutdown checkpoint - bgwriter: Ignore - pgarch: Ignore - startup process: Ignore - walreceiver: Ignore - IO worker: die() IO workers are a notable exception in that they exit on SIGINT, and there's a documented reason for that: IO workers ignore SIGTERM, so SIGINT provides a way to manually kill them. (They do respond to SIGUSR2, though, like all the other processes that we don't want to exit immediately on SIGTERM on operating system shutdown.) To make this a little more consistent, ignore SIGINT in walwriter and walsummarizer. They have no "query" to cancel, and they react to SIGTERM just fine. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/818bafaf-1e77-4c78-8037-d7120878d87c@iki.fi
This commit is contained in:
@ -241,12 +241,9 @@ WalSummarizerMain(const void *startup_data, size_t startup_data_len)
|
||||
|
||||
/*
|
||||
* Properly accept or ignore signals the postmaster might send us
|
||||
*
|
||||
* We have no particular use for SIGINT at the moment, but seems
|
||||
* reasonable to treat like SIGTERM.
|
||||
*/
|
||||
pqsignal(SIGHUP, SignalHandlerForConfigReload);
|
||||
pqsignal(SIGINT, SignalHandlerForShutdownRequest);
|
||||
pqsignal(SIGINT, SIG_IGN); /* no query to cancel */
|
||||
pqsignal(SIGTERM, SignalHandlerForShutdownRequest);
|
||||
/* SIGQUIT handler was already set up by InitPostmasterChild */
|
||||
pqsignal(SIGALRM, SIG_IGN);
|
||||
|
||||
@ -98,12 +98,9 @@ WalWriterMain(const void *startup_data, size_t startup_data_len)
|
||||
|
||||
/*
|
||||
* Properly accept or ignore signals the postmaster might send us
|
||||
*
|
||||
* We have no particular use for SIGINT at the moment, but seems
|
||||
* reasonable to treat like SIGTERM.
|
||||
*/
|
||||
pqsignal(SIGHUP, SignalHandlerForConfigReload);
|
||||
pqsignal(SIGINT, SignalHandlerForShutdownRequest);
|
||||
pqsignal(SIGINT, SIG_IGN); /* no query to cancel */
|
||||
pqsignal(SIGTERM, SignalHandlerForShutdownRequest);
|
||||
/* SIGQUIT handler was already set up by InitPostmasterChild */
|
||||
pqsignal(SIGALRM, SIG_IGN);
|
||||
|
||||
Reference in New Issue
Block a user