Thread: deadlock detected
Hi all,
I am using Postrgesql 9.1
I got a message in my log:
ERROR: deadlock detected
DETAIL: Process 20265 waits for ShareLock on transaction 27774015; blocked by process 20262.
Process 20262 waits for ShareLock on transaction 27774018; blocked by process 20265.
Process 20265: UPDATE t1 SET product_id = 1017966 WHERE ticketid = '2170501'
Process 20262: UPDATE c1 SET deleted=1 WHERE id='2170501'
HINT: See server log for query details.
STATEMENT: UPDATE t1 SET product_id = 1017966 WHERE ticketid = '2170501'
How may I get more information about this deadlock like which queries created it.
Thanks.
On 05/11/12 18:39, AI Rumman wrote: > Hi all, > > I am using Postrgesql 9.1 > > I got a message in my log: > ERROR: deadlock detected > DETAIL: Process 20265 waits for ShareLock on transaction 27774015; > blocked by process 20262. > Process 20262 waits for ShareLock on transaction 27774018; > blocked by process 20265. > Process 20265: UPDATE t1 SET product_id = 1017966 WHERE > ticketid = '2170501' > Process 20262: UPDATE c1 SET deleted=1 WHERE id='2170501' > HINT: See server log for query details. > STATEMENT: UPDATE t1 SET product_id = 1017966 WHERE ticketid = '2170501' > > How may I get more information about this deadlock like which queries > created it. > The error message shows which queries - your two UPDATEs. I'm guessing either t1 or c1 are views and so refer to the same row with id "2710501". -- Richard Huxton
Richard Huxton <dev@archonet.com> writes: > On 05/11/12 18:39, AI Rumman wrote: >> ERROR: deadlock detected >> DETAIL: Process 20265 waits for ShareLock on transaction 27774015; >> blocked by process 20262. >> Process 20262 waits for ShareLock on transaction 27774018; >> blocked by process 20265. >> Process 20265: UPDATE t1 SET product_id = 1017966 WHERE >> ticketid = '2170501' >> Process 20262: UPDATE c1 SET deleted=1 WHERE id='2170501' >> HINT: See server log for query details. >> STATEMENT: UPDATE t1 SET product_id = 1017966 WHERE ticketid = '2170501' >> >> How may I get more information about this deadlock like which queries >> created it. > The error message shows which queries - your two UPDATEs. I'm guessing > either t1 or c1 are views and so refer to the same row with id "2710501". Another likely theory is both transactions trying to lock the same row as a result of foreign key constraint enforcement. We'd need to know more about t1 and c1 and their FK constraints before being able to say anything definite. (Also, I suspect you need additional commands earlier in the same transactions to get an actual deadlock here, rather than just one update being blocked by the other ...) regards, tom lane