Thread: ERROR: duplicate key violates unique constraint "pg_type_typname_nsp_index"

ERROR: duplicate key violates unique constraint "pg_type_typname_nsp_index"

From
Michael Guerin
Date:
Hi,

     I'm not sure what the cause of this error is, but I figured I
should post it.  I had to restore from back to stop getting these errors
"ERROR:  cache lookup failed for type 813612037" .   This was from a
database running beta4, i'm now running beta5.

-michael

LOG:  unexpected EOF on client connection
ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
CONTEXT:  SQL statement "create temp table tmp_children ( uniqid bigint,
memberid bigint, membertype varchar(50), ownerid smallint, tag varc
har(50), level int4 )"
        PL/pgSQL function "fngetcompositeids2" line 14 at SQL statement
ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
CONTEXT:  SQL statement "create temp table tmp_children ( uniqid bigint,
memberid bigint, membertype varchar(50), ownerid smallint, tag varc
har(50), level int4 )"
        PL/pgSQL function "fngetcompositeids2" line 14 at SQL statement
ERROR:  cache lookup failed for type 813612037
FATAL:  cache lookup failed for type 813612037
LOG:  server process (PID 10449) exited with exit code 1
LOG:  terminating any other active server processes
WARNING:  terminating connection because of crash of another server process
DETAIL:  The postmaster has commanded this server process to roll back
the current transaction and exit, because another server process exit
ed abnormally and possibly corrupted shared memory.
HINT:  In a moment you should be able to reconnect to the database and
repeat your command.
WARNING:  terminating connection because of crash of another server process
DETAIL:  The postmaster has commanded this server process to roll back
the current transaction and exit, because another server process exit
ed abnormally and possibly corrupted shared memory.
--More--(74%)

Michael Guerin <guerin@rentec.com> writes:
>      I'm not sure what the cause of this error is, but I figured I
> should post it.

> ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
> ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
> CONTEXT:  SQL statement "create temp table tmp_children ( uniqid bigint,
> memberid bigint, membertype varchar(50), ownerid smallint, tag varc
> har(50), level int4 )"

Hmm.  It looks like the source of the problem is an
only-partially-deleted temp table left behind by some prior failure.
Specifically, the rowtype entry for the table is still there in
pg_type, though its pg_class entry must be gone or you'd have gotten
a different error message.  This seems pretty odd, since the catalog
entries should have been deleted in a single transaction.

Can you look back just before you started getting these, and see if
there is any record of a backend crashing during exit?

It's too bad you already restored from backup, since you've now wiped
out all the evidence ...

            regards, tom lane

Re: ERROR: duplicate key violates unique constraint "pg_type_typname_nsp_index"

From
Michael Guerin
Date:
Tom Lane wrote:

>Michael Guerin <guerin@rentec.com> writes:
>
>
>>     I'm not sure what the cause of this error is, but I figured I
>>should post it.
>>
>>
>
>
>
>>ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
>>ERROR:  duplicate key violates unique constraint "pg_type_typname_nsp_index"
>>CONTEXT:  SQL statement "create temp table tmp_children ( uniqid bigint,
>>memberid bigint, membertype varchar(50), ownerid smallint, tag varc
>>har(50), level int4 )"
>>
>>
>
>Hmm.  It looks like the source of the problem is an
>only-partially-deleted temp table left behind by some prior failure.
>Specifically, the rowtype entry for the table is still there in
>pg_type, though its pg_class entry must be gone or you'd have gotten
>a different error message.  This seems pretty odd, since the catalog
>entries should have been deleted in a single transaction.
>
>Can you look back just before you started getting these, and see if
>there is any record of a backend crashing during exit?
>
>It's too bad you already restored from backup, since you've now wiped
>out all the evidence ...
>
>            regards, tom lane
>
>
It's a production database, so I had to get it back online.  I did
however leave the old files around, and restored to a new db install.
I'll startup the old files on another port to poke around.  I believe
the only restart happened after the error, i'll confirm this.

-michael


Michael Guerin <guerin@rentec.com> writes:
> Tom Lane wrote:
>> It's too bad you already restored from backup, since you've now wiped
>> out all the evidence ...
>>
> It's a production database, so I had to get it back online.

[ raised eyebrow ]  You're running a production server on a beta release?
You're braver than I am.

            regards, tom lane