Re: Vacuum problem due to temp tables

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bhakti Ghatkar <bghatkar(at)zedo(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Vacuum problem due to temp tables
Date: 2011-02-26 17:25:32
Message-ID: 20323.1298741132@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Bhakti Ghatkar <bghatkar(at)zedo(dot)com> writes:
> We were running full vacuum on DB when we encountered the error below;

> INFO: vacuuming "pg_catalog.pg_index"
> *vacuumdb: vacuuming of database "rpt_production" failed: ERROR: duplicate
> key value violates unique constraint "pg_index_indexrelid_index"*
> DETAIL: Key (indexrelid)=(2678) already exists.

That's pretty bizarre, but what makes you think it has anything to do
with temp tables? OID 2678 is pg_index_indexrelid_index itself.
It looks to me like you must have duplicate rows in pg_index for that
index (and maybe others?), and the problem is exposed during vacuum full
because it tries to rebuild the indexes.

Could we see the output of

select ctid,xmin,xmax,* from pg_index where indexrelid in
(select indexrelid from pg_index group by 1 having count(*)>1);

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Florian Weimer 2011-02-26 20:54:50 Re: Picking out the most recent row using a time stamp column
Previous Message Dave Johansen 2011-02-26 13:44:28 Re: Picking out the most recent row using a time stamp column