Re: [ADMIN] database corruption help

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: John Lister <john(dot)lister-ps(at)kickstone(dot)com>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [ADMIN] database corruption help
Date: 2009-02-12 22:13:03
Message-ID: 17764.1234476783@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

John Lister <john(dot)lister-ps(at)kickstone(dot)com> writes:
> GMT LOG: relation "pg_class" TID 15538/4: dead HOT-updated tuple ---
> cannot shrink relation

Hmm. The comments in vacuum.c about this case suppose that it could
only be a transient condition, ie the tuple became dead while we were
looking at the page. Evidently it's persistent for you, which means
that for some reason heap_page_prune() is failing to remove an
already-dead tuple. I suspect this implies a corrupt HOT chain, but
maybe the data is okay and what you've got is really a bug in
heap_page_prune.

Could you send a dump of page 15538 of pg_class, using pg_filedump?
The source code for it is here:
http://sources.redhat.com/rhdb/utilities.html
Best would be -i -f format, ie
pg_filedump -i -f -R 15538 $PGDATA/base/something/1259

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message John Lister 2009-02-13 08:20:03 Database corruption help
Previous Message Ceriel Jacobs 2009-02-12 22:10:03 Stop postgres writing to pgstat.tmp :: how disable / to verify that postgres statistics are correctly disabled

Browse pgsql-hackers by date

  From Date Subject
Next Message Mark Roberts 2009-02-12 22:19:01 Re: Good Delimiter for copy command
Previous Message John Lister 2009-02-12 21:45:35 Re: database corruption help