Обсуждение: ERROR: cache lookup failed for type 16292881

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

ERROR: cache lookup failed for type 16292881

От
Ramiro Barreca
Дата:
Since a few days ago we are having problems while performing backup using pg_dump to a PG 8.4 database over a Centos 5.5
There are several databases in this server, but this is the only one that produces this FAIL.
Reported message from pg_dump is:
(...)
pg_dump: reading triggers for table "usuario_sistema_externo"
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving standard_conforming_strings = on
pg_dump: saving database definition
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR:  cache lookup failed for type 16292881
pg_dump: The command was: SELECT proretset, prosrc, probin, pg_catalog.pg_get_function_arguments(oid) AS funcargs, pg_catalog.pg_get_function_identity_arguments(oid) AS funciargs, pg_catalog.pg_get_function_result(oid) AS funcresult, proiswindow, provolatile, proisstrict, prosecdef, proconfig, procost, prorows, (SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) AS lanname FROM pg_catalog.pg_proc WHERE oid = '16292882'::pg_catalog.oid
pg_dump: *** aborted because of error
We 've found no one type with this OID.
Looking at a solution in several forums, speaks about objects dropped in replication platforms, but it is not this case.
Any help to know where to look for?
Thank you..

Ramiro Barreca
rbarreca@gmail.com

Re: ERROR: cache lookup failed for type 16292881

От
Tom Lane
Дата:
Ramiro Barreca <rbarreca@gmail.com> writes:
> Since a few days ago we are having problems while performing backup using
> pg_dump to a PG 8.4 database over a Centos 5.5

You realize of course that 8.4.anything is long out of support, and
therefore full of known bugs.  But I wonder whether this is even a
reasonably late minor release of 8.4.

> *pg_dump: Error message from server: ERROR:  cache lookup failed for type
> 16292881*
> *pg_dump: The command was: SELECT proretset, prosrc, probin,
> pg_catalog.pg_get_function_arguments(oid) AS funcargs,
> pg_catalog.pg_get_function_identity_arguments(oid) AS funciargs,
> pg_catalog.pg_get_function_result(oid) AS funcresult, proiswindow,
> provolatile, proisstrict, prosecdef, proconfig, procost, prorows, (SELECT
> lanname FROM pg_catalog.pg_language WHERE oid = prolang) AS lanname FROM
> pg_catalog.pg_proc WHERE oid = '16292882'::pg_catalog.oid*

You might learn something productive from

select * from pg_proc where oid = '16292882';

The direct problem of course is that oid 16292881 can't be found
in pg_type.  If you're really lucky, that's just index corruption
that could be fixed by reindexing pg_type.

            regards, tom lane