From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Sysadmin <linux(at)alteeve(dot)com> |
Cc: | PostgreSQL General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Manually clearing "database "foo" is being accessed by other users" |
Date: | 2007-09-20 19:27:00 |
Message-ID: | 29559.1190316420@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Sysadmin <linux(at)alteeve(dot)com> writes:
> I'm finding that routinely when I try to reload a database on a server
> where I know there are no connections to a given DB I get the error:
> $ dropdb foo && createdb foo -O bar && psql foo -f /path/to/db.out
> dropdb: database removal failed: ERROR: database "foo" is being
> accessed by other users
If it says there are other connections, then there really are other
connections --- there are not any known bugs in that logic.
What I am wondering though is whether you are allowing for the nonzero
exit time of a backend process. If the above is part of a script that
was just doing something in database foo, then the drop could fail
because the backend that was serving that session is still cleaning up.
The quickest solution is a 'sleep 1' (or so) before the dropdb.
(FWIW, 8.3 will have some delay built in here to help mask this issue.)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Crawford | 2007-09-20 19:40:14 | Re: Manually clearing "database "foo" is being accessed by other users" |
Previous Message | Sysadmin | 2007-09-20 18:12:23 | Manually clearing "database "foo" is being accessed by other users" |