Re: Recovery inconsistencies, standby much larger than primary

From: Greg Stark <stark(at)mit(dot)edu>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)2ndquadrant(dot)com>
Subject: Re: Recovery inconsistencies, standby much larger than primary
Date: 2014-02-13 03:05:14
Message-ID: CAM-w4HNeVaWwt3-KVi_OF8MHcO1C0iS50RNKad25He0GTGgKDQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Feb 12, 2014 at 8:28 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Oh, wait a minute. It's not just a matter of whether we find the right
> block: we also have to consider whether XLogReadBufferExtended will
> apply the right "mode" behavior. Currently, it supposes that all pages
> past the initially observed EOF should be assumed to be uninitialized;
> but if we're working with an inconsistent database, that seems like
> an unsafe assumption. It might be that a page is there but we've not
> (yet) fixed the length of some preceding segment. If we want to not
> get bogus "WAL contains references to invalid pages" failures in such
> scenarios, it seems like we need a more invasive change than what
> I just committed. I think your patch didn't cover this consideration
> either.

Hm. I *think* those cases would be handled anyways since the table
would later be truncated. Arguably any reference after the "short"
segment is a "reference to an invalid page" since it means it's a
record which predates the records which caused the extension.
Obviously it would still give the error in the case we had where files
were missing but then probably it should give errors in that case.

--
greg

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2014-02-13 03:07:31 Re: [PATCH] pg_upgrade: support for btrfs copy-on-write clones
Previous Message Bruce Momjian 2014-02-13 02:08:19 Re: Dead code or buggy code?