Various serverlog messages
I was looking through my serverlog and there are a few
items I have questions about:
ERROR: _mdfd_getrelnfd: cannot open relation
pg_toast_16384_index: No such file or directory
LOG: recycled transaction log file 00000000000000AB
LOG: recycled transaction log file 00000000000000AC
LOG: recycled transaction log file 00000000000000AD
LOG: recycled transaction log file 00000000000000AE
LOG: recycled transaction log file 00000000000000AF
LOG: pq_recvbuf: unexpected EOF on client connection
ERROR: _mdfd_getrelnfd: cannot open relation
pg_toast_16384_index: No such file or directory
LOG: recycled transaction log file 00000000000000B0
Anything to worry about? What's the message about the
toast index mean - db corruption?
What are the recycled transaction log messages about?
Do I need to worry about ID's wrapping?
CSN
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
CSN <cool_screen_name90001@yahoo.com> writes:
I was looking through my serverlog and there are a few
items I have questions about:
LOG: recycled transaction log file 00000000000000AD
LOG: recycled transaction log file 00000000000000AE
LOG: recycled transaction log file 00000000000000AF
LOG: pq_recvbuf: unexpected EOF on client connection
These are routine (that's why they're marked LOG).
ERROR: _mdfd_getrelnfd: cannot open relation
pg_toast_16384_index: No such file or directory
This is definitely not routine. Assuming you're running 7.3,
this seems to indicate that you've lost the toast index for
pg_attrdef. Which would be a bad thing, although we can hope
that maybe you didn't have any default expressions long enough
to need to be toasted.
Could we see the output of
select oid,* from pg_class where relname = 'pg_toast_16384_index';
(you should repeat this in each of your databases to make sure
they all give the same answers).
Are you able to do a pg_dump?
regards, tom lane
--- Tom Lane <tgl@sss.pgh.pa.us> wrote:
ERROR: _mdfd_getrelnfd: cannot open relation
pg_toast_16384_index: No such file or directoryThis is definitely not routine. Assuming you're
running 7.3,
this seems to indicate that you've lost the toast
index for
pg_attrdef. Which would be a bad thing, although we
can hope
that maybe you didn't have any default expressions
long enough
to need to be toasted.Could we see the output of
select oid,* from pg_class where relname =
'pg_toast_16384_index';
(you should repeat this in each of your databases to
make sure
they all give the same answers).Are you able to do a pg_dump?
Yes, pg_dump and pg_dumpall appear to work fine. The
output for all of the dbs (except one) for the select
above is:
oid | relname | relnamespace | reltype
| relowner | relam | relfilenode | relpages |
reltuples | reltoastrelid | reltoastidxid |
relhasindex | relisshared | relkind | relnatts |
relchecks | reltriggers | relukeys | relfkeys |
relrefs | relhasoids | relhaspkey | relhasrules |
relhassubclass | relacl
-------+----------------------+--------------+---------+----------+-------+-------------+----------+-----------+---------------+---------------+-------------+-------------+---------+----------+-----------+-------------+----------+----------+---------+------------+------------+-------------+----------------+--------
16656 | pg_toast_16384_index | 99 | 0
| 1 | 403 | 16656 | 1 |
0 | 0 | 0 | f | f
| i | 2 | 0 | 0
| 0 | 0 | 0 | f | f
| f | f |
(1 row)
Here's the exception:
oid | relname | relnamespace | reltype
| relowner | relam | relfilenode | relpages |
reltuples | reltoastrelid | reltoastidxid |
relhasindex | relisshared | relkind | relnatts |
relchecks | reltriggers | relukeys | relfkeys |
relrefs | relhasoids | relhaspkey | relhasrules |
relhassubclass | relacl
-------+----------------------+--------------+---------+----------+-------+-------------+----------+-----------+---------------+---------------+-------------+-------------+---------+----------+-----------+-------------+----------+----------+---------+------------+------------+-------------+----------------+--------
16656 | pg_toast_16384_index | 99 | 0
| 1 | 403 | 3682590432 | 1 |
0 | 0 | 0 | f | f
| i | 2 | 0 | 0
| 0 | 0 | 0 | f | f
| f | f |
(1 row)
The 3682590432 value.
BTW, what is toast (for big fields?) and (toasted)
default expressions?
TIA,
CSN
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
CSN <cool_screen_name90001@yahoo.com> writes:
Yes, pg_dump and pg_dumpall appear to work fine. The
output for all of the dbs (except one) for the select
above is:
[ normal looking ]
Here's the exception:
16656 | pg_toast_16384_index | 99 | 0
| 1 | 403 | 3682590432 | 1 |
0 | 0 | 0 | f | f
| i | 2 | 0 | 0
| 0 | 0 | 0 | f | f
| f | f |
(1 row)
Sure enough, the relfilenode column (which determines the actual on-disk
filename) is clobbered. Weird as can be ... could you have suffered a
hardware glitch affecting just that one word? Doesn't seem real likely
--- the glitches I've seen in the past tend to take out more than a word
at a time. But it's not easy to credit as a software error either.
You could fix this database with a quick UPDATE command to set
relfilenode back to what it should be in this pg_class row. However,
it'd be wise to wonder what other issues might be lurking. If I were
you I'd do a pg_dumpall/initdb/reload cycle, and also spend some time on
hardware testing (if you're on Intel hardware, memtest86 has a good
reputation for finding RAM problems, and people have successfully found
disk problems with badblocks).
regards, tom lane
If an IDE drive has a bad block, doesn't it just mark the block as bad
and map in a new one, perhaps taking as much of the old block as it can?
Maybe that is the cause.
From my experience, SCSI reports a block error and will not read it.
---------------------------------------------------------------------------
Tom Lane wrote:
CSN <cool_screen_name90001@yahoo.com> writes:
Yes, pg_dump and pg_dumpall appear to work fine. The
output for all of the dbs (except one) for the select
above is:
[ normal looking ]
Here's the exception:16656 | pg_toast_16384_index | 99 | 0
| 1 | 403 | 3682590432 | 1 |
0 | 0 | 0 | f | f
| i | 2 | 0 | 0
| 0 | 0 | 0 | f | f
| f | f |
(1 row)Sure enough, the relfilenode column (which determines the actual on-disk filename) is clobbered. Weird as can be ... could you have suffered a hardware glitch affecting just that one word? Doesn't seem real likely --- the glitches I've seen in the past tend to take out more than a word at a time. But it's not easy to credit as a software error either.You could fix this database with a quick UPDATE command to set
relfilenode back to what it should be in this pg_class row. However,
it'd be wise to wonder what other issues might be lurking. If I were
you I'd do a pg_dumpall/initdb/reload cycle, and also spend some time on
hardware testing (if you're on Intel hardware, memtest86 has a good
reputation for finding RAM problems, and people have successfully found
disk problems with badblocks).regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073