Re: Use read streams in pg_visibility

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Use read streams in pg_visibility
Date: 2024-09-10 11:35:46
Message-ID: CAN55FZ2Pf4fpF7tFEUfkoEZM2sV6OaM4F-1f9LOneyOL81SMNQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Tue, 10 Sept 2024 at 00:32, Noah Misch <noah(at)leadboat(dot)com> wrote:
>
> Copying the vm file is a good technique. In my test runs, this does catch the
> "never detect" bug, but it doesn't catch the blkno bug. Can you make it catch
> both? It's possible my hand-patching to recreate the blkno bug is what went
> wrong, so I'm attaching what I used. It consists of
> v1-0002-Use-read-stream-in-pg_visibility-in-collect_corru.patch plus these
> fixes for the "never detect" bug from your v6-0002:

Your patch is correct. I wrongly assumed it would catch blockno bug,
the attached version catches it. I made blockno = 0 invisible and not
frozen before copying the vm file. So, in the blockno buggy version;
callback will skip that block but the main loop in the
collect_corrupt_items() will not skip it. I tested it with your patch
and there is exactly 1 blockno difference between expected and result
output.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachment Content-Type Size
v7-0001-Add-tests-that-pg_check_-visible-frozen-report-co.patch application/x-patch 4.1 KB
v7-0002-Optimize-pg_visibility-with-read-streams.patch application/x-patch 6.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniel Gustafsson 2024-09-10 11:39:24 Re: [PATCH] Fix small overread during SASLprep
Previous Message Amit Kapila 2024-09-10 11:24:45 Re: Conflict detection for update_deleted in logical replication