corrupted tuple (header?), pg_filedump output - Mailing list pgsql-hackers

From Eric Parusel
Subject corrupted tuple (header?), pg_filedump output
Date
Msg-id 423A1083.40402@globalrelay.net
Whole thread Raw
Responses Re: corrupted tuple (header?), pg_filedump output
List pgsql-hackers
I've tracked down a row that is failing:

maia=# select id FROM table WHERE id = 1401765;
ERROR:  could not access status of transaction 1634148473
DETAIL:  could not open file "/data1/pgsql/data/pg_clog/0616": No such 
file or directory

db=# vacuum maia_mail;
WARNING:  relation "table" TID 28393/2: OID is invalid
ERROR:  could not access status of transaction 1634148473
DETAIL:  could not open file "/data1/pgsql/data/pg_clog/0616": No such 
file or directory

I found the following post on pgsql-hackers and followed some of Tom 
Lane's suggestions:
http://tinyurl.com/5bjf9

I ran pg_filedump, and here's a snippet:
(I would assume that TID 28393/2 means that "item" 2 has the problem, 
correct?

./pg_filedump -i -f -R 28393 /data1/pgsql/data/base/17760/18004
--snip--Item   2 -- Length: 1728  Offset: 6464 (0x1940)  Flags: USED XMIN: 12  CMIN: 196608  XMAX: 122552335
CMAX|XVAC:177664675 Block Id: 0  linp Index: 47241   Attributes: 3692   Size: 0 infomask: 0x0900
(XMIN_COMMITTED|XMAX_INVALID)Error: Computed header length not equal to header size.        Computed <28>  Header: <0>
 
--snip--

I assume this is where my problem lies.

What do I do now?  Can this be repaired?
This tuple is not needed, I can "get rid of it" or somehow dereference 
it if need be.

How does an inconsistency like this typically arise?

Thanks very much,
Eric


pgsql-hackers by date:

Previous
From: Juan Pablo Espino
Date:
Subject: Re:
Next
From: Tom Lane
Date:
Subject: Re: caches lifetime with SQL vs PL/PGSQL procs