Thread: BUG #9430: Strange error during pg_dump with concurrent alter table working

BUG #9430: Strange error during pg_dump with concurrent alter table working

From
maxim.boguk@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      9430
Logged by:          Maxim Boguk
Email address:      maxim.boguk@gmail.com
PostgreSQL version: 9.2.7
Operating system:   Linux
Description:

Hi,

Today during performing database schema migration, I got strange error from
concurrently working
pg_dump -F p -s:

pg_dump: [archiver (db)] query failed: ERROR:  cache lookup failed for
constraint 18543
pg_dump: [archiver (db)] query was: SELECT tableoid, oid, conname,
pg_catalog.pg_get_constraintdef(oid) AS consrc, conislocal, convalidated
FROM pg_catalog.pg_constraint WHERE conrelid = '26756'::pg_catalog.oid
AND contype = 'c' ORDER BY conname

This constraint was defined as:
[local]:5432 postgres@sports=# SELECT tableoid, oid, conname,
pg_catalog.pg_get_constraintdef(oid) AS consrc, conislocal, convalidated
FROM pg_catalog.pg_constraint WHERE conrelid = '26756'::pg_catalog.oid
AND contype = 'c' ORDER BY conname;
-[ RECORD 1
]+--------------------------------------------------------------
tableoid     | 2606
oid          | 97238286
conname      | fb_rate_account_sport_user_id_cookie_check
consrc       | CHECK (((sport_user_id IS NOT NULL) OR (cookie IS NOT
NULL)))
conislocal   | t
convalidated | t


Concurrent ALTER command:
/*65851105*/alter table stat.fb_rate_account alter column sport_user_id type
int8;

I will try create self-containing test case in few hours.

Kind Regards,
Maksym
maxim.boguk@gmail.com writes:
> [ pg_dump sometimes fails in the presence of concurrent DDL ]

That's a known issue, unfortunately, and unlikely to go away anytime soon.
It's possible that the 9.4 changes to use MVCC scans for catalog access
will make it better, but I'm not sure that'll be sufficient to fix
everything.

            regards, tom lane