Thread: oids and pg_class_oid_index constraint violations

oids and pg_class_oid_index constraint violations

From
"Aaron Harsh"
Date:
We've just recently started seeing sporadic constraint violations on system tables.  For example:

  duplicate key violates unique constraint "pg_class_oid_index" [for Statement "CREATE TEMPORARY TABLE...

and

  duplicate key violates unique constraint "pg_toast_4292803267_index" [for Statement "INSERT INTO...

and the occasional

  unexpected chunk number 0 (expected 1) for toast value

I suspect that the problem is due to oid reuse, but I'd like to get a second opinion.  We've just recently grown to a
billiontuples in our database (with all our tables built with oids), and the volume of activity makes me think it's
likelythat the majority of records have been updated three or four times. 

Our current plan for dealing with the problem is to 'SET WITHOUT OIDS' on our tables, then dump & restore the database.

Does it seem reasonable that oid reuse could cause the constraint violations?  Does it seem likely that this would fix
theproblem?  Is there an easier way to solve the problem? 

Thanks in advance

--
Aaron Harsh
ajh@rentrak.com
503-284-7581 x347


Re: oids and pg_class_oid_index constraint violations

From
Tom Lane
Date:
"Aaron Harsh" <ajh@rentrak.com> writes:
> We've just recently started seeing sporadic constraint violations on system tables.  For example:
>   duplicate key violates unique constraint "pg_class_oid_index" [for Statement "CREATE TEMPORARY TABLE...

OID wraparound would explain that ...

> and the occasional
>   unexpected chunk number 0 (expected 1) for toast value

... but not that.  The latter might possibly be due to a corrupt index
on a toast table.  If you have a reproducible way of causing it, I'd
definitely love to see it.

            regards, tom lane