• A
    Avoid calling kill() in a postmaster signal handler. · 45f9b464
    Alvaro Herrera 提交于
    This causes problems when the system load is high, per report from Zdenek
    Kotala in <1250860954.1239.114.camel@localhost>; instead of calling kill
    directly, have the signal handler set a flag which is checked in ServerLoop.
    This way, the handler can return before being called again by a subsequent
    signal sent from the autovacuum launcher.  Also, increase the sleep in the
    launcher in this failure path to 1 second.
    
    Backpatch to 8.3, which is when the signalling between autovacuum
    launcher/postmaster was introduced.
    
    Also, add a couple of ReleasePostmasterChildSlot calls in error paths; this
    part backpatched to 8.4 which is when the child slot stuff was introduced.
    45f9b464
autovacuum.c 80.5 KB