Re: BUG #17212: pg_amcheck fails on checking temporary relations
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Mark Dilger <mark.dilger@enterprisedb.com>
Cc: Pavel Borisov <pashkin.elfe@gmail.com>,
Alexander Lakhin <exclusion@gmail.com>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-10-06T17:16:09Z
Lists: pgsql-bugs, pgsql-hackers
On Wed, Oct 6, 2021 at 9:25 AM Mark Dilger <mark.dilger@enterprisedb.com> wrote: > Thanks for reviewing! > > I expect to post a new version shortly. Not sure how much it matters, but I have some thoughts on the return value of pg_amcheck. (I'm mostly going into this now because it seems related to how we discuss these issues generally.) A return value of 0 cannot be said to indicate that the database is not corrupt; strictly speaking the verification process doesn't actually verify anything. The null hypothesis is that the database isn't corrupt. pg_amcheck looks for disconfirmatory evidence (evidence of corruption) on a best-effort basis. This seems fundamental. If this philosophy of science stuff seems too abstract, then I can be more concrete: pg_amcheck doesn't even attempt to verify indexes that aren't B-Tree indexes. Clearly we cannot be sure that the database contains no corruption when there happens to be even one such index. And yet the return value from pg_amcheck is still 0 (barring problems elsewhere). I think that it'll always be possible to make *some* argument like that, even in a world where pg_amcheck + amcheck are very feature complete. As I said, it seems fundamental. -- Peter Geoghegan
Commits
-
Remove unstable pg_amcheck tests.
- cd3f429d9565 15.0 landed
- 5863115e4cb1 14.1 landed
-
pg_amcheck: avoid unhelpful verification attempts.
- d2bf06db3779 15.0 landed
- dd58194cf563 14.1 landed
-
amcheck: Skip unlogged relations in Hot Standby.
- 292698f158dd 15.0 landed
- e7712155ea08 14.1 landed
-
amcheck: Skip unlogged relations during recovery.
- 6754fe65a4c6 13.0 cited