• Tom Lane's avatar
    Suppress log spam from multiple reports of SIGQUIT shutdown. · 1f9158ba
    Tom Lane authored
    When the postmaster sends SIGQUIT to its children, there's no real
    need for all the children to log that fact; the postmaster already
    made a log entry about it, so adding perhaps dozens or hundreds of
    child-process log entries adds nothing of value.  So, let's introduce
    a new ereport level to specify "WARNING, but never send to log" and
    use that for these messages.
    
    Such a change wouldn't have been desirable before commit 7e784d1d,
    because if someone manually SIGQUIT's a backend, we *do* want to log
    that.  But now we can tell the difference between a signal that was
    issued by the postmaster and one that was not with reasonable
    certainty.
    
    While we're here, also clear error_context_stack before ereport'ing,
    to prevent error callbacks from being invoked in the signal-handler
    context.  This should reduce the odds of getting hung up while trying
    to notify the client.
    
    Per a suggestion from Andres Freund.
    
    Discussion: https://postgr.es/m/20201225230331.hru3u6obyy6j53tk@alap3.anarazel.de
    1f9158ba
postgres.c 130 KB