Domagoj Smoljanovic <domagoj.smoljano...@oradian.com> writes: > I have pg_restore running in parallel (3 or more) and processing large amount > of data that is in partitioned tables. However it seems that sometime > deadlock appears when one process is trying to process primary key on parent > table while data still hasn’t been loaded into partitions. And acquires > Exclusive Lock on the whole table. Then another process comes and tries to > load one of the partitions with SharedLock but it fails.
> This of course doesn’t happen always; depending on the course of actions of > the pg_restore. But often enough to cause frustration. > Process 15858 waits for AccessShareLock on relation 233358134 of database > 233346697; blocked by process 15861. > Process 15861 waits for AccessExclusiveLock on relation 233374757 of database > 233346697; blocked by process 15858. > Process 15858: TRUNCATE TABLE ONLY myschema."myTable:2020-09-01"; > Process 15861: ALTER TABLE ONLY myschema."myTable" ADD CONSTRAINT > "pk_myTable" PRIMARY KEY ("ID", date); Hm, this seems related to 2ba5b2db7, but not the same thing. Alvaro, any thoughts? regards, tom lane