Re: Query regarding deadlock - Mailing list pgsql-general

From Jeff Janes
Subject Re: Query regarding deadlock
Date
Msg-id CAMkU=1xHe84F1Vd=p0Nv8OV4pPOP+urGhJ4OD6re86YQuNWwLA@mail.gmail.com
Whole thread Raw
In response to Query regarding deadlock  (Yogesh Sharma <Yogesh1.Sharma@nectechnologies.in>)
List pgsql-general
On Thu, Nov 24, 2016 at 5:44 PM, Yogesh Sharma <Yogesh1.Sharma@nectechnologies.in> wrote:
Dear All,

Thanks in advance.
I found below deadlock in postgresql logs.
I cannot change calling of REINDEX and insert query sequence because it is execute automatically through some cron script.

ERROR:  deadlock detected
 DETAIL:  Process 2234 waits for AccessShareLock on relation 16459 of database 16385; blocked by process 4111.
 Process 4111 waits for ShareLock on relation 16502 of database 16385; blocked by process 2234.
 Process 2234: INSERT INTO table1 ( id , unique_id )VALUES( '1', '4')
 Process 4111: REINDEX TABLE table1

Could you please provide any solution to resolve this deadlock.

What are tables 16459 and 16502?  Are they related to each other through triggers or FK constraints?

Are you reindexing multiple tables in the same transaction?  If not, I don't see why these should deadlock.  One should win, and the other should block.  

If you are reindexing multiple tables in the same transaction, why are you doing that?  I can't think of a situation where you couldn't use separate transactions per table.

Cheers,

Jeff

pgsql-general by date:

Previous
From: Gavin Flower
Date:
Subject: Re: PostgreDB stores table name is lower case
Next
From: Adrian Klaver
Date:
Subject: Re: PostgreDB stores table name is lower case