Re: Amcheck verification of GiST and GIN

From: Arseniy Mukhin <arseniy(dot)mukhin(dot)dev(at)gmail(dot)com>
To: Tomas Vondra <tomas(at)vondra(dot)me>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>, "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru>, Alexander Lakhin <exclusion(at)gmail(dot)com>, Andrey Borodin <amborodin86(at)gmail(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, Jose Arthur Benetasso Villanova <jose(dot)arthur(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Nikolay Samokhvalov <samokhvalov(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Amcheck verification of GiST and GIN
Date: 2025-05-29 11:53:32
Message-ID: CAE7r3MKD6WJvH=m5Je1EzRmnQybXatZfVcfNow4oKSAtnnTgSQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, May 26, 2025 at 7:28 PM Arseniy Mukhin
<arseniy(dot)mukhin(dot)dev(at)gmail(dot)com> wrote:
> On Mon, May 26, 2025 at 1:27 PM Tomas Vondra <tomas(at)vondra(dot)me> wrote:
> > Also, I've noticed that the TAP test passes even with some (most) of the
> > verify_gin.c changes reverted. See the 0002 patch - this does not break
> > the TAP test. Of course, that does not prove the changes are wrong and
> > I'm not claiming that. But can we improve the TAP test to trigger this
> > too? To show the current code (in master) misses this?
>
> Yes, changes in the undo patch is about posting tree check part (6, 7 points)
> and I haven't written tests for it, because to break posting tree you need to
> manipulate with tids which is not as easy as replace "aaaa" with "cccc" as tests
> for entry tree do. Probably it would be much easier to use page api to
> corrupt some
> posting tree pages, but I don't know, is it impossible in TAP tests?

I added the test for the posting tree parent_key check. Now applying
'undo patch' results in
a test failure.
Also I realized that the test 'invalid_entry_columns_order_test' will
fail on big endian machines,
because varlena len encoding is different for little endian and big
endian, so I changed the test a little bit.
Now the test doesn't use varlena len byte in regex.
I also remove the blksize hardcode and start getting it from the
cluster configuration. But anyway some tests
will fail with not standard block size (probably all tests where tree
growth is expected).

Best regards,
Arseniy Mukhin

Attachment Content-Type Size
v3-0002-undo.patch text/x-patch 1.6 KB
v3-0001-verify-gin-fixes-and-tests.patch text/x-patch 18.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Álvaro Herrera 2025-05-29 11:53:50 Re: PG 18 release notes draft committed
Previous Message Tom Lane 2025-05-29 11:14:05 Re: Warning -Wclobbered in PG_TRY(...)