pgsql: Check if we've reached end-of-backup point also if no redo is re

From: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Check if we've reached end-of-backup point also if no redo is re
Date: 2012-12-19 12:22:26
Message-ID: E1TlIfK-000438-7g@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Check if we've reached end-of-backup point also if no redo is required.

If you restored from a backup taken from a standby, and the last record in
the backup is the checkpoint record, ie. there is no redo required except
for the checkpoint record, we would fail to notice that we've reached the
end-of-backup point, and the database is consistent. The result was an
error "WAL ends before end of online backup". To fix, move the
have-we-reached-end-of-backup check into CheckRecoveryConsistency(), which
is already responsible for similar checks with minRecoveryPoint, and is
called in the right places.

Backpatch to 9.2, this check and bug did not exist before that.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/e43f947bf32f3ea4caa5b895ca7c7659b17192ae

Modified Files
--------------
src/backend/access/transam/xlog.c | 49 +++++++++++++++++++++----------------
1 files changed, 28 insertions(+), 21 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2012-12-20 12:37:38 pgsql: Add pg_upgrade comment about mismatch error
Previous Message Peter Eisentraut 2012-12-19 12:17:24 pgsql: Rename SQL feature S403 to ARRAY_MAX_CARDINALITY