postgres-github.git / summary / log / commit / refs

commit    db93032a7cbd30199429167e649e22fab89327ed
Author:   Fujii Masao <fujii@postgresql.org>
Date:     Wed Apr 08 02:22:21 2026 +0000

    Fix slotsync worker blocking promotion when stuck in wait
    
    Previously, on standby promotion, the startup process sent SIGUSR1 to
    the slotsync worker (or a backend performing slot synchronization) and
    waited for it to exit. This worked in most cases, but if the process was
    blocked waiting for a response from the primary (e.g., due to a network
    failure), SIGUSR1 would not interrupt the wait. As a result, the process
    could remain stuck, causing the startup process to wait for a long time
    and delaying promotion.
    
    This commit fixes the issue by introducing a new procsignal reason,
    PROCSIG_SLOTSYNC_MESSAGE. On promotion, the startup process
    sends this signal, and the handler sets interrupt flags so the process
    exits (or errors out) promptly at CHECK_FOR_INTERRUPTS(), allowing
    promotion to complete without delay.
    
    Backpatch to v17, where slotsync was introduced.
    
    Author: Nisha Moond <nisha.moond412@gmail.com>
    Reviewed-by: shveta malik <shveta.malik@gmail.com>
    Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
    Reviewed-by: Zhijie Hou <houzj.fnst@fujitsu.com>
    Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
    Discussion: https://postgr.es/m/CAHGQGwFzNYroAxSoyJhqTU-pH=t4Ej6RyvhVmBZ91Exj_TPMMQ@mail.gmail.com
    Backpatch-through: 17

[parent: 544000288ec8]