Joe Conway <mail@joeconway.com> writes:
> On cvs head, I can get "tuple concurrently updated" if two separate
> transactions are both trying to drop the same index:
This seems related to the discussions we had awhile back about how
deletion needs to take locks *before* it starts doing anything.
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00937.phphttp://archives.postgresql.org/pgsql-bugs/2007-03/msg00143.php
Notice that recursiveDeletion() tries to clean out pg_depend before
it actually deletes the target object, and in the current code that
object-specific subroutine is the only thing that takes any sort of lock.
regards, tom lane