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/
signature.asc
Description: OpenPGP digital signature
