pgsql: Fix backup manifests to generate correct WAL-Ranges across timel

Started by Michael Paquieralmost 5 years ago3 messagescomitters
Jump to latest
#1Michael Paquier
michael@paquier.xyz

Fix backup manifests to generate correct WAL-Ranges across timelines

In a backup manifest, WAL-Ranges stores the range of WAL that is
required for the backup to be valid. pg_verifybackup would then
internally use pg_waldump for the checks based on this data.

When the timeline where the backup started was more than 1 with a
history file looked at for the manifest data generation, the calculation
of the WAL range for the first timeline to check was incorrect. The
previous logic used as start LSN the start position of the first
timeline, but it needs to use the start LSN of the backup. This would
cause failures with pg_verifybackup, or any tools making use of the
backup manifests.

This commit adds a test based on a logic using a self-promoted node,
making it rather cheap.

Author: Kyotaro Horiguchi
Discussion: /messages/by-id/20210818.143031.1867083699202617521.horikyota.ntt@gmail.com
Backpatch-through: 13

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/a3fcbcda7505e9079cec95e7209cde4f5d5c8bd8

Modified Files
--------------
src/backend/replication/backup_manifest.c | 15 +++++++++++----
src/bin/pg_verifybackup/t/007_wal.pl | 19 ++++++++++++++++++-
2 files changed, 29 insertions(+), 5 deletions(-)

#2Thomas Munro
thomas.munro@gmail.com
In reply to: Michael Paquier (#1)
Re: pgsql: Fix backup manifests to generate correct WAL-Ranges across timel

On Mon, Aug 23, 2021 at 2:10 PM Michael Paquier <michael@paquier.xyz> wrote:

Fix backup manifests to generate correct WAL-Ranges across timelines

+$primary->append_conf('standby.signal');

I think this needs a second argument, to silence a warning visible in
regress_log_007_wal.

#3Michael Paquier
michael@paquier.xyz
In reply to: Thomas Munro (#2)
Re: pgsql: Fix backup manifests to generate correct WAL-Ranges across timel

On Wed, Oct 06, 2021 at 03:47:26PM +1300, Thomas Munro wrote:

+$primary->append_conf('standby.signal');

I think this needs a second argument, to silence a warning visible in
regress_log_007_wal.

Oops, will fix. Thanks!
--
Michael