Re: BUG #19774: Incremental backup loses re-extended blocks when WAL summaries are merged out of LSN order

From: Ayush Tiwari <ayushtiwari(dot)slg01(at)gmail(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: kehan5800(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #19774: Incremental backup loses re-extended blocks when WAL summaries are merged out of LSN order
Date: 2026-10-21 10:03:47
Message-ID: CAJTYsWU+Xb_pfpoANsLF44cqfe6XWVEXz1rAaZ0P7h2J=C9uXQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On Wed, 21 Oct 2026 at 13:47, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>
> On Tue, Oct 20, 2026 at 8:56 PM PG Bug reporting form
> <noreply(at)postgresql(dot)org> wrote:
> > Sorting
> > the list before the merge fixes this.
>
> Thanks for the report and patch!
>
> Attached is an updated patch that retains your fix, makes minor naming and
> comment changes, and adds a TAP test. The test truncates a table before
> promoting a standby, re-extends it afterward, and verifies the restored data.
> Using different timelines makes the test independent of directory
> enumeration order.

Thanks for the updated patch, it was clear to read.

I think there might be one more corner case here.

IIUC, a standby can summarize WAL ahead of replay. If it gets promoted
right at the start of one of those summaries, FilterWalSummaries()
seems to keep that old-timeline file, and it can tie with the first
new-timeline summary in the sort..

Would it make sense for FilterWalSummaries() to use the same >= / <=
checks as GetWalSummaries()?

The patch looks good to me though.

Regards,
Ayush

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Nitin Motiani 2026-10-21 10:29:55 Re: BUG #19765: Wrong result from a chain of LEFT JOINs since v16
Previous Message Zhijie Hou 2026-10-21 10:01:28 Re: BUG #19760: CLUSTER loses a row the transaction inserted and then updated in a rolled-back subtransaction