• Tom Lane's avatar
    Perform an immediate shutdown if the postmaster.pid file is removed. · 7e2a18a9
    Tom Lane authored
    The postmaster now checks every minute or so (worst case, at most two
    minutes) that postmaster.pid is still there and still contains its own PID.
    If not, it performs an immediate shutdown, as though it had received
    SIGQUIT.
    
    The original goal behind this change was to ensure that failed buildfarm
    runs would get fully cleaned up, even if the test scripts had left a
    postmaster running, which is not an infrequent occurrence.  When the
    buildfarm script removes a test postmaster's $PGDATA directory, its next
    check on postmaster.pid will fail and cause it to exit.  Previously, manual
    intervention was often needed to get rid of such orphaned postmasters,
    since they'd block new test postmasters from obtaining the expected socket
    address.
    
    However, by checking postmaster.pid and not something else, we can provide
    additional robustness: manual removal of postmaster.pid is a frequent DBA
    mistake, and now we can at least limit the damage that will ensue if a new
    postmaster is started while the old one is still alive.
    
    Back-patch to all supported branches, since we won't get the desired
    improvement in buildfarm reliability otherwise.
    7e2a18a9
postmaster.c 170 KB