• Robert Haas's avatar
    Avoid possible hang during smart shutdown. · 38b27792
    Robert Haas authored
    If a smart shutdown occurs just as a child is starting up, and the
    child subsequently becomes a walsender, there is a race condition:
    the postmaster might count the exstant backends, determine that there
    is one normal backend, and wait for it to die off.  Had the walsender
    transition already occurred before the postmaster counted, it would
    have proceeded with the shutdown.
    
    To fix this, have each child that transforms into a walsender kick
    the postmaster just after doing so, so that the state machine is
    certain to advance.
    
    Fujii Masao
    38b27792
postmaster.c 137 KB