Mark Shuttleworth wrote:
> Tom Lane wrote:
>> (1) something (still not sure what --- Martin and Mark, I'd really like
>> to know) was issuing random SIGTERMs to various postgres processes
>> including autovacuum.
>>   
> 
> This may be a misfeature in our test harness - I'll ask Stuart Bishop to
> comment.

After a test is run, the test harness kills any outstanding connections so
we can drop the test database. Without this, a failing test could leave open
connections dangling causing the drop database to block.

CREATE OR REPLACE FUNCTION _killall_backends(text)
RETURNS Boolean AS $$
    import os
    from signal import SIGTERM

    plan = plpy.prepare(
        "SELECT procpid FROM pg_stat_activity WHERE datname=$1", ['text']
        )
    success = True
    for row in plpy.execute(plan, args):
        try:
            plpy.info("Killing %d" % row['procpid'])
            os.kill(row['procpid'], SIGTERM)
        except OSError:
            success = False

    return success
$$ LANGUAGE plpythonu;

-- 
Stuart Bishop <[EMAIL PROTECTED]>   http://www.canonical.com/
Canonical Ltd.                                http://www.ubuntu.com/

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to