"Marc G. Fournier" <scrappy@postgresql.org> writes:
> ...
> 3) All deadlocks are fighting for the same relation: 4335271, which is
> the tsearch2 fulltext index on the articles table:
> articles_idxft1_idx.
> DETAIL: Process 8122 waits for AccessExclusiveLock on relation 4335271 of database 17142; blocked by process 11846.
> Process 11846 waits for ShareLock on transaction 2897133915; blocked by process 10042.
> Process 10042 waits for AccessExclusiveLock on relation 4335271 of database 17142; blocked by process 8122.
> ----------------------------------
> DETAIL: Process 10042 waits for AccessExclusiveLock on relation 4335271 of database 17142; blocked by process
11846.
> Process 11846 waits for ShareLock on transaction 2897133915; blocked by process 10042.
Gist indexes require AccessExclusiveLock for any update, so the blocks
on 4335271 just indicate an index update attempt. The "ShareLock on
transaction" lines suggest a block on a row that is updated or selected
FOR UPDATE. It's hard to say more without more info. Do you have any
related foreign keys, for instance?
regards, tom lane