Deadlock with single update statement?

From: Rob Nikander <rob(dot)nikander(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Deadlock with single update statement?
Date: 2017-06-10 10:26:26
Message-ID: C050217D-B373-4BF2-A707-37FB4514706F@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I’m trying to track down a deadlock happening in a live app. I’m wondering about statements like this, which select more than one row to update:

update t set num = 1 where name = ‘foo’;

It appears to be causing a deadlock, but I can’t reproduce it on my test database. Could two threads, each running this update, get in a deadlock? In other words, are both of the following true:

1. The update locks each row in sequence, not all at once.
2. The order of the row locking could vary from one thread to the next.

thanks,
Rob

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2017-06-10 14:34:28 Re: Deadlock with single update statement?
Previous Message Alban Hertroys 2017-06-10 08:46:35 Re: Inconsistent performance with LIKE and bind variable on long-lived connection