Re: 9.0.4 Data corruption issue

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ken Caruso <ken(at)ipl31(dot)net>
Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: 9.0.4 Data corruption issue
Date: 2011-07-16 21:30:30
Message-ID: 23808.1310851830@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Ken Caruso <ken(at)ipl31(dot)net> writes:
> Sorry, the actual error reported by CLUSTER is:

> gpup=> cluster verbose tablename;
> INFO: clustering "dbname.tablename"
> WARNING: could not write block 12125253 of base/2651908/652397108
> DETAIL: Multiple failures --- write error might be permanent.
> ERROR: could not open file "base/2651908/652397108.1" (target block
> 12125253): No such file or directory
> CONTEXT: writing block 12125253 of relation base/2651908/652397108

Hmm ... it looks like you've got a dirty buffer in shared memory that
corresponds to a block that no longer exists on disk; in fact, the whole
table segment it belonged to is gone. Or maybe the block or file number
in the shared buffer header is corrupted somehow.

I imagine you're seeing errors like this during each checkpoint attempt?

I can't think of any very good way to clean that up. What I'd try here
is a forced database shutdown (immediate-mode stop) and see if it starts
up cleanly. It might be that whatever caused this has also corrupted
the back WAL and so WAL replay will result in the same or similar error.
In that case you'll be forced to do a pg_resetxlog to get the DB to come
up again. If so, a dump and reload and some manual consistency checking
would be indicated :-(

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Ken Caruso 2011-07-17 07:31:41 Re: 9.0.4 Data corruption issue
Previous Message Ken Caruso 2011-07-16 19:42:47 Re: 9.0.4 Data corruption issue