Re: BUG #16619: Amcheck detects corruption in hstore' btree index (ver 2)

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Anastasia Lubennikova <a(dot)lubennikova(at)postgrespro(dot)ru>
Cc: andrewbille(at)gmail(dot)com, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Subject: Re: BUG #16619: Amcheck detects corruption in hstore' btree index (ver 2)
Date: 2020-09-16 17:47:19
Message-ID: CAH2-WzkSjsCHgs9YdBiFdC8iV_14rWO2R_VRsQaS_Mj-5H0Vnw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Sep 16, 2020 at 7:24 AM Anastasia Lubennikova
<a(dot)lubennikova(at)postgrespro(dot)ru> wrote:
> For v2 indexes pivot tuple's offset can contain any random number which
> will lead to bt_pivot_tuple_identical() failure.
>
> The fix is pretty simple - only compare data part of the tuples. I think
> we can skip offnum check for all index versions to keep the code simple.

I pushed a tweaked version of this patch. It seemed worth preserving
the inclusion of offset number in the bt_pivot_tuple_identical()
memcmp() comparison. The field contains important metadata that really
should match. Also, I made sure to compare t_info field on all indexes
(including pg_upgrade'd indexes) for the same reason.

We already account for heapkeyspace difference in other similar
routines, such as invariant_l_offset(). It's not hard to do this here
as well.

Thanks
--
Peter Geoghegan

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Nagaraj Raj 2020-09-16 18:22:54 table partition with inheritance having current_timestamp issue if we miss range table
Previous Message Jehan-Guillaume de Rorthais 2020-09-16 15:31:24 Re: Inconsitancies in pg_stat_bgwriter and pg_stat_database returned values