Re: Hash index: stop registering pin-only bucket pages in WAL (remove REGBUF_NO_CHANGE)

From: João Rito <joaovictor(dot)rito(at)gmail(dot)com>
To: vignesh C <vignesh21(at)gmail(dot)com>
Cc: Greg Burd <greg(at)burd(dot)me>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Hayato Kuroda <kuroda(dot)hayato(at)fujitsu(dot)com>, shihao zhong <zhong950419(at)gmail(dot)com>
Subject: Re: Hash index: stop registering pin-only bucket pages in WAL (remove REGBUF_NO_CHANGE)
Date: 2026-11-13 14:48:30
Message-ID: CADMs5OMQ1c0CufbGzrZTn9ByX0tWCgHRPcPdg_OUsxR-Gh45TA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Vignesh, Greg,

Thank you for v8, and for fixing the pg_waldump segment size problem I
hit with v7.

I tested v8-0001..0004 applied in order on current master
(77bba5454f), with cassert and injection points enabled (meson, Debian
12 in a container, ext4):

- recovery/061_hash_torn_primary_page: 9 subtests passed
- recovery/062_hash_vacuum_insert_crc: 4 subtests passed, none skipped

Passing the segment files from pg_walfile_name() works as expected,
and I did not see the "invalid WAL segment size" error again. No CRC
problem was reported either.

I only ran these two tests, once, on Linux ext4. I did not run
check-world or other platforms.

Thanks again for the work on this.

Best regards,
Joao Rito

Em sex., 13 de nov. de 2026 às 07:42, vignesh C <vignesh21(at)gmail(dot)com> escreveu:
>
> On Thu, 12 Nov 2026 at 21:43, Joao Rito <joaovictor(dot)rito(at)gmail(dot)com> wrote:
> >
> > Hi Greg,
> >
> > Thank you for the v7 patch and the new recovery test.
> >
> > I tested v7 on a local build. While running 061_hash_vacuum_insert_crc on
> > Linux (ext4, meson build), subtest 2 failed for me with:y
> >
> > pg_waldump: error: invalid WAL segment size in WAL file
> > "000000010000000000000002" (0 bytes)
> >
> > Both LSNs are in segment ...0001, and segment ...0002 is a zero-filled
> > 16 MB file. When --path is a directory, pg_waldump seems to read the
> > segment size from the first WAL file readdir() returns, so the result
> > depends on directory order (here 0002 came first).
> >
> > Passing the segment file for $start_lsn (for example from pg_walfile_name)
> > worked for me by hand. Subtest 3 passed and I saw no CRC problem. I did
> > not apply the change to the test and rerun it under meson.
>
> Thanks for the comment, this is addressed in the v8 version patch attached.
> Apart from that, the following changes were done:
> 1) prepared back branch patches for the 0001 patch.
> 2) The test 068 was renamed to the next available 061 test file.
> 3) Most of the test code was common in
> hash_torn_primary_page_delete_first and
> hash_torn_primary_page_standby, merged them to a single test
> 4) the test added along with 0001 was not passing with the first patch
> alone, fixed it so that the first patch can be committed separately.
>
> Regards,
> Vignesh

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Siddharth Kothari 2026-11-13 14:58:44 Re: [PATCH] Add RetrieveInstrumentation hook for CustomScan providers
Previous Message Zsolt Parragi 2026-11-13 14:39:10 Re: compiler attribute alloc_size