Re: pg_restore: fails to restore post-data items due to circular FK deadlock - Mailing list pgsql-bugs

From Tom Lane
Subject Re: pg_restore: fails to restore post-data items due to circular FK deadlock
Date
Msg-id 3908.1717093769@sss.pgh.pa.us
Whole thread Raw
In response to pg_restore: fails to restore post-data items due to circular FK deadlock  (vaibhave postgres <postgresvaibhave@gmail.com>)
List pgsql-bugs
vaibhave postgres <postgresvaibhave@gmail.com> writes:
> 1. Create a database which has circular foreign key dependencies. (or use
> the sql script which I have shared), restore the pre-data section first.
> 2. pg_dump -Fc *--section=post-data*
> 3. pg_restore --jobs > 1

> pg_restore fails to record the dependency between the foreign keys and
> tries to process them in parallel (see the attached log file for details)

The reason this works in other cases is that pg_restore recognizes
that two ADD CONSTRAINT steps shouldn't be run concurrently when they
have dependencies on the same table(s).  However, when you use
--section=post-data to create the dump file, there are no entries for
the tables.

So this seems like a "don't do that" case.  You could get the results
you want by using --schema-only at dump time and then using
--section=post-data as a pg_restore switch.  (That'd also avoid the
need to make two separate dump files.)

Possibly we should add something to the docs about this.

            regards, tom lane



pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #18488: Installation of postgis30_13 fails on Rocky 9
Next
From: "Tobey, Paul SOPT 6151"
Date:
Subject: COPY FROM STDIN BINARY failure