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