aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2020-11-16 18:27:51 +0900
committerFujii Masao <fujii@postgresql.org>2021-07-25 11:16:02 +0900
commit1bcfda30fb64eb9ed423e0652e02ce04e2dcaad0 (patch)
tree61f81b7ea21c53f5a2fc3b3bf13a8911a89190af
parent899785b4f6c8c732c233e23c31a93405cff5ec34 (diff)
downloadpostgresql-1bcfda30fb64eb9ed423e0652e02ce04e2dcaad0.tar.gz
postgresql-1bcfda30fb64eb9ed423e0652e02ce04e2dcaad0.zip
Make the standby server promptly handle interrupt signals.
This commit changes the startup process in the standby server so that it handles the interrupt signals after waiting for wal_retrieve_retry_interval on the latch and resetting it, before entering another wait on the latch. This change causes the standby server to promptly handle interrupt signals. Otherwise, previously, there was the case where the standby needs to wait extra five seconds to shutdown when the shutdown request arrived while the startup process was waiting for wal_retrieve_retry_interval on the latch. Author: Fujii Masao, but implementation idea is from Soumyadeep Chakraborty Reviewed-by: Soumyadeep Chakraborty Discussion: https://postgr.es/m/9d7e6ab0-8a53-ddb9-63cd-289bcb25fe0e@oss.nttdata.com Per discussion of BUG #17073, back-patch to all supported versions. Discussion: https://postgr.es/m/17073-1a5fdaed0fa5d4d0@postgresql.org
-rw-r--r--src/backend/access/transam/xlog.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 9f682c85677..a82919229a8 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -12017,6 +12017,9 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess,
WAIT_EVENT_RECOVERY_WAL_STREAM);
ResetLatch(&XLogCtl->recoveryWakeupLatch);
now = GetCurrentTimestamp();
+
+ /* Handle interrupt signals of startup process */
+ HandleStartupProcInterrupts();
}
last_fail_time = now;
currentSource = XLOG_FROM_ARCHIVE;