Query failed: ERROR: catalog is missing 1 attribute(s) for relid 456086
Everything was working fine with a site of mine
yesterday, but today PG was failing with:
Warning: pg_query() [function.pg-query]: Query failed:
ERROR: catalog is missing 1 attribute(s) for relid
456086 . in /var/www/html/lib.php on line 200
VACUUM gave the same error, but VACUUM FULL appears to
have fixed whatever the problem was. Only one of the
PG databases was giving this error. Any idea what the
problem was/is? I'm using PG 7.3.2 and run the
vacuumdb script nightly.
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
CSN <cool_screen_name90001@yahoo.com> writes:
ERROR: catalog is missing 1 attribute(s) for relid
456086 . in /var/www/html/lib.php on line 200
Ugh. This indicates corruption in the system catalogs --- specifically,
a missing pg_attribute row. These rows will normally be picked up with an
indexscan, so it's possible that pg_attribute itself is fine and the
trouble is corruption in pg_attribute_relid_attnum_index.
VACUUM gave the same error, but VACUUM FULL appears to
have fixed whatever the problem was.
Sounds like blind luck to me. I'd have expected that you *might* escape
alive by reindexing pg_attribute, otherwise you have a big problem.
The only way that an error like that would go away by itself is if it
wasn't really there at all --- that is, the apparent corruption only
existed in in-memory copies of pg_attribute pages, and not on disk at
all. I'd strongly recommend running some hardware diagnostics
(memtest86, badblocks, etc). You might not be so lucky with the next
dropped bit.
regards, tom lane
otherwise you have a big problem.
Is this something that's likely to occur again (and
again)? How *big* of a problem would/could it cause
(corrupted table, db, installation, ...)? Also, how
would it be recovered from (backups, reindexing,
vacuum, ...)?
I'll have to see about running the memory tests. If it
does turn out there's bad memory, is replacing it the
only recourse?
Thanks,
CSN
--- Tom Lane <tgl@sss.pgh.pa.us> wrote:
CSN <cool_screen_name90001@yahoo.com> writes:
ERROR: catalog is missing 1 attribute(s) for relid
456086 . in /var/www/html/lib.php on line 200Ugh. This indicates corruption in the system
catalogs --- specifically,
a missing pg_attribute row. These rows will
normally be picked up with an
indexscan, so it's possible that pg_attribute itself
is fine and the
trouble is corruption in
pg_attribute_relid_attnum_index.VACUUM gave the same error, but VACUUM FULL
appears to
have fixed whatever the problem was.
Sounds like blind luck to me. I'd have expected
that you *might* escape
alive by reindexing pg_attribute, otherwise you have
a big problem.The only way that an error like that would go away
by itself is if it
wasn't really there at all --- that is, the apparent
corruption only
existed in in-memory copies of pg_attribute pages,
and not on disk at
all. I'd strongly recommend running some hardware
diagnostics
(memtest86, badblocks, etc). You might not be so
lucky with the next
dropped bit.regards, tom lane
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com