Re: page corruption on 8.3+ that makes it to standby - Mailing list pgsql-hackers

From Robert Haas
Subject Re: page corruption on 8.3+ that makes it to standby
Date
Msg-id AANLkTimSu85=QH-hUL4WyEF1t0eTJe1M346M3YmrGUA5@mail.gmail.com
Whole thread Raw
In response to Re: page corruption on 8.3+ that makes it to standby  (Jeff Davis <pgsql@j-davis.com>)
Responses Re: page corruption on 8.3+ that makes it to standby
List pgsql-hackers
On Tue, Jul 27, 2010 at 5:08 PM, Jeff Davis <pgsql@j-davis.com> wrote:
> On Tue, 2010-07-27 at 15:50 -0400, Robert Haas wrote:
>> > 1. Have log_newpage() and heap_xlog_newpage() only call PageSetLSN() and
>> > PageSetTLI() if the page is not new. This seems slightly awkward because
>> > most WAL replay stuff doesn't have to worry about zero pages, but in
>> > this case I think it does.
>> >
>> > 2. Have copy_relation_data() initialize new pages. I don't like this
>> > because (a) it's not really the job of SET TABLESPACE to clean up zero
>> > pages; and (b) it could be an index with different special size, etc.,
>> > and it doesn't seem like a good place to figure that out.
>>
>> It appears to me that all of the callers of log_newpage() other than
>> copy_relation_data() do so with pages that they've just constructed,
>> and which therefore can't be new.  So maybe we could just modify
>> copy_relation_data to check PageIsNew(buf), or something like that,
>> and only call log_newpage() if that returns true.
>
> My first concern with that idea was that it may create an inconsistency
> between the primary and the standby. The primary could have a bunch of
> zero pages that never make it to the standby.

Maybe I'm slow on the uptake here, but don't the pages start out
all-zeroes on the standby just as they do on the primary? The only way
it seems like this would be a problem is if a page that previously
contained data on the primary was subsequently zeroed without writing
a WAL record - or am I confused?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company


pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: page corruption on 8.3+ that makes it to standby
Next
From: Nilson
Date:
Subject: Toward a column reorder solution