Re: regression, deadlock in high frequency single-row UPDATE

Mark Kirkwood <mark.kirkwood@catalyst.net.nz>

From: Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
To: Alvaro Herrera <alvherre@2ndquadrant.com>, pgsql-bugs@postgresql.org, Paulo Tanimoto <paulo@janrain.com>
Date: 2014-12-09T05:58:58Z
Lists: pgsql-bugs
On 09/12/14 12:55, Andrew Sackville-West wrote:
> Some months later (stupid business priorities...) we have something to
> report on this. We have been able to produce a minimal schema to
> demonstrate the problem, and successfully induced the deadlock using
> pgbench (thanks to Paulo Tanimoto, cc-ed here).
>
> Please see:
>
> https://gist.github.com/andrewsw-janrain/40d1687db013b1e7c3b3
>
> for detailed instructions on how to trigger the deadlock.
>
> I would be thrilled to learn that we've done something wrong here,
> otherwise I think this represents a regression introduced in 9.3.
>
>


That is interesting - FWIW I can reproduce:

- 9.2.9 no deadlock
- 9.4rc1 many deadlocks

so something has changed after 9.2 for sure!

Just mucking about I changed certain things in your schema setup 
(removed ON DELETE CASCADE, use CURRENT_TIMESTAMP instead of 
now()...lessen the use of DEFAULT)...however still seeing deadlocks in 
9.4, so at least it is easy to reproduce!

Regards

Mark



Commits

  1. Add isolationtester spec for old heapam.c bug

  2. Improve concurrency of foreign key locking