Re: BUG #5626: Parallel pg_restore fails with "tuple concurrently updated"

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Albert Ullrich <aullrich(at)blackducksoftware(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5626: Parallel pg_restore fails with "tuple concurrently updated"
Date: 2010-08-20 17:24:38
Message-ID: 22428.1282325078@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Albert Ullrich <aullrich(at)blackducksoftware(dot)com> writes:
> We run essentially the following commands to create the table of contents in order to prevent pg_restore from failing:
> pg_restore -l database.dump | \
> eval fgrep -v -e "' SCHEMA - public '" \
> -e "' COMMENT - SCHEMA public '" \
> -e "' PROCEDURAL LANGUAGE - plpgsql'" database.toc

Mph ... removing the public schema from the restore list is problematic,
because you've got a lot of stuff *in* the public schema, and of course
all that stuff depends on the public schema entry. Normally this
doesn't bother pg_restore because it just blindly restores in the order
you tell it, without paying much attention to the dependency entries.
However, in parallel restore mode it does believe the dependencies,
and the fact that you've got lots of entries that depend on something
not to be restored screws it up.

We should probably try to make pg_restore smarter about this case,
but for the moment my advice remains: don't use -L with parallel
restore. It appears to me that you're trying to avoid running
pg_restore as superuser, which no doubt seems a bit safer, but
it's not a terribly well-tested path.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephen Frost 2010-08-20 17:43:40 Re: BUG #5626: Parallel pg_restore fails with "tuple concurrently updated"
Previous Message Martin Pitt 2010-08-20 13:20:07 Re: libpq: system-wide root.crt