Re: checkpoint write errors - Mailing list pgsql-general

From Tom Lane
Subject Re: checkpoint write errors
Date
Msg-id 1613.1477096397@sss.pgh.pa.us
Whole thread Raw
In response to checkpoint write errors  (CS DBA <cs_dba@consistentstate.com>)
Responses Re: checkpoint write errors  (CS DBA <cs_dba@consistentstate.com>)
List pgsql-general
CS DBA <cs_dba@consistentstate.com> writes:
> we're seeing the below errors over and over in the logs of one of our
> postgres databases. Version 8.4.22

[ you really oughta get off 8.4, but you knew that right? ]

> Anyone have any thoughts on correcting/debugging it?

> ERROR:  xlog flush request 2571/9C141530 is not satisfied --- flushed
> only to 2570/DE61C290
> CONTEXT:  writing block 4874 of relation base/1029860192/1029863651
> WARNING:  could not write block 4874 of base/1029860192/1029863651
> DETAIL:  Multiple failures --- write error might be permanent.

Evidently the LSN in this block is wrong.  If it's an index, your idea of
REINDEX is probably the best solution.  If it's a heap block, you could
probably make the problem go away by performing an update that changes any
tuple in this block.  It doesn't even need to be a committed update; that
is, you could update or delete any row in that block, then roll back the
transaction, and it'd still be fixed.

Try to avoid shutting down the DB until you've fixed the problem,
else you're looking at replay from whenever the last successful
checkpoint was :-(

> Maybe I need to run a REINDEX on whatever table equates to
> "base/1029860192/1029863651"?  If so how do I determine the db and table
> for "base/1029860192/1029863651"?

1029860192 is the OID of the database's pg_database row.
1029863651 is the relfilenode in the relation's pg_class row.

            regards, tom lane


pgsql-general by date:

Previous
From: Vick Khera
Date:
Subject: Re: Large empty table, balanced INSERTs and DELETEs, not being vacuumed
Next
From: Alexander Staubo
Date:
Subject: Re: text_pattern_ops index not being used for prefix query