pgsql: pg_amcheck: avoid unhelpful verification attempts.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: pg_amcheck: avoid unhelpful verification attempts.
Date: 2021-10-13 21:09:44
Message-ID: E1malVQ-0004qt-CL@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

pg_amcheck: avoid unhelpful verification attempts.

Avoid calling contrib/amcheck functions with relations that are
unsuitable for checking. Specifically, don't attempt verification of
temporary relations, or indexes whose pg_index entry indicates that the
index is invalid, or not ready.

These relations are not supported by any of the contrib/amcheck
functions, for reasons that are pretty fundamental. For example, the
implementation of REINDEX CONCURRENTLY can add its own "transient"
pg_index entries, which has rather unclear implications for the B-Tree
verification functions, at least in the general case -- so they just
treat it as an error. It falls to the amcheck caller (in this case
pg_amcheck) to deal with the situation at a higher level.

pg_amcheck now simply treats these conditions as additional "visibility
concerns" when it queries system catalogs. This is a little arbitrary.
It seems to have the least problems among any of the available
alternatives.

Author: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
Reported-By: Alexander Lakhin <exclusion(at)gmail(dot)com>
Reviewed-By: Peter Geoghegan <pg(at)bowt(dot)ie>
Reviewed-By: Robert Haas <robertmhaas(at)gmail(dot)com>
Bug: #17212
Discussion: https://postgr.es/m/17212-34dd4a1d6bba98bf@postgresql.org
Backpatch: 14-, where pg_amcheck was introduced.

Branch
------
master

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

Modified Files
--------------
doc/src/sgml/ref/pg_amcheck.sgml | 12 ++
src/bin/pg_amcheck/pg_amcheck.c | 83 ++++++++----
src/bin/pg_amcheck/t/006_bad_targets.pl | 233 ++++++++++++++++++++++++++++++++
3 files changed, 299 insertions(+), 29 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2021-10-13 22:05:59 pgsql: Change recently added test code for stability
Previous Message Robert Haas 2021-10-13 16:24:53 pgsql: Refactor some end-of-recovery code out of StartupXLOG().