pgsql: Fix amcheck child check pg_upgrade bug.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix amcheck child check pg_upgrade bug.
Date: 2020-09-16 17:45:49
Message-ID: E1kIbV7-0006Jk-J3@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix amcheck child check pg_upgrade bug.

Commit d114cc53 overlooked the fact that pg_upgrade'd B-Tree indexes
have leaf page high keys whose offset numbers do not match the one from
the copy of the tuple one level up (the copy stored with a downlink for
leaf page's right sibling page). This led to false positive reports of
corruption from bt_index_parent_check() when it was called to verify a
pg_upgrade'd index.

To fix, skip comparing the offset number on pg_upgrade'd B-Tree indexes.

Author: Anastasia Lubennikova <a(dot)lubennikova(at)postgrespro(dot)ru>
Author: Peter Geoghegan <pg(at)bowt(dot)ie>
Reported-By: Andrew Bille <andrewbille(at)gmail(dot)com>
Diagnosed-By: Anastasia Lubennikova <a(dot)lubennikova(at)postgrespro(dot)ru>
Bug: #16619
Discussion: https://postgr.es/m/16619-aaba10f83fdc1c3c@postgresql.org
Backpatch: 13-, where child check was enhanced.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/aac80bfcddf7df3fbd1eb73e8a386115d922c714

Modified Files
--------------
contrib/amcheck/verify_nbtree.c | 34 ++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-09-16 18:28:39 pgsql: Don't fetch partition check expression during InitResultRelInfo.
Previous Message Tom Lane 2020-09-16 17:38:40 pgsql: Avoid unnecessary recursion to child tables in ALTER TABLE SET N