Re: incremental backup breakage in BlockRefTableEntryGetBlocks

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Cc: Jakub Wartak <jakub.wartak@enterprisedb.com>
Date: 2024-04-04T19:11:27Z
Lists: pgsql-hackers
On 4/4/24 19:38, Robert Haas wrote:
> Hi,
> 
> Yesterday, Tomas Vondra reported to me off-list that he was seeing
> what appeared to be data corruption after taking and restoring an
> incremental backup. Overnight, Jakub Wartak further experimented with
> Tomas's test case, did some initial analysis, and made it very easy to
> reproduce. I spent this morning tracking down the problem, for which I
> attach a patch.
> 

Thanks, I can confirm this fixes the issue I've observed/reported. On
master 10 out of 10 runs failed, with the patch no failures.

The test is very simple:

1) init pgbench
2) full backup
3) run short pgbench
4) incremental backup
5) compare pg_dumpall on the instance vs. restored backup


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

  1. Fix incorrect calculation in BlockRefTableEntryGetBlocks.