Обсуждение: BUG #9430: Strange error during pg_dump with concurrent alter table working

Поиск
Список
Период
Сортировка

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

От
maxim.boguk@gmail.com
Дата:
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

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

От
Tom Lane
Дата:
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