postgres.git / summary / log / commit / refs

commit    9c83398f8743181ed6e877bbb35bcfafc1cb82b2
Author:   Fujii Masao <fujii@postgresql.org>
Date:     Mon Nov 16 09:27:51 2020 +0000
First released in: 9.6.23, 10.18, 11.13, 12.8, 13.4

    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


src/backend/access/transam/xlog.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 2d6c5583e40..639505e7427 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -12161,6 +12161,9 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess, wait_time, 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; [parent: 7b2262a21cde]