Re: new heapcheck contrib module
Mark Dilger <mark.dilger@enterprisedb.com>
> On Oct 26, 2020, at 6:37 AM, Robert Haas <robertmhaas@gmail.com> wrote: > > On Fri, Oct 23, 2020 at 2:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Seems to work, so I pushed it (after some compulsive fooling >> about with whitespace and perltidy-ing). It appears to me that >> the code coverage for verify_heapam.c is not very good though, >> only circa 50%. Do we care to expend more effort on that? > > There are two competing goods here. On the one hand, more test > coverage is better than less. On the other hand, finicky tests that > have platform-dependent results or fail for strange reasons not > indicative of actual problems with the code are often judged not to be > worth the trouble. An early version of this patch set had a very > extensive chunk of Perl code in it that actually understood the page > layout and, if we adopt something like that, it would probably be > easier to test a whole bunch of scenarios. The downside is that it was > a lot of code that basically duplicated a lot of backend logic in > Perl, and I was (and am) afraid that people will complain about the > amount of code and/or the difficulty of maintaining it. On the other > hand, having all that code might allow better testing not only of this > particular patch but also other scenarios involving corrupted pages, > so maybe it's wrong to view all that code as a burden that we have to > carry specifically to test this; or, alternatively, maybe it's worth > carrying even if we only use it for this. On the third hand, as Mark > points out, if we get 0002 committed, that will help somewhat with > test coverage even if we do nothing else. Much of the test in 0002 could be ported to work without committing the rest of 0002, if the pg_amcheck command line utiilty is not wanted. > > Thanks for committing (and adjusting) the patches for the existing > buildfarm failures. If I understand the buildfarm results correctly, > hornet is still unhappy even after > 321633e17b07968e68ca5341429e2c8bbf15c331? That appears to be a failed test for pg_surgery rather than for amcheck. Or am I reading the log wrong? — Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Add pg_amcheck, a CLI for contrib/amcheck.
- 9706092839db 14.0 landed
-
Refactor and generalize the ParallelSlot machinery.
- f71519e545a3 14.0 landed
-
Generalize parallel slot result handling.
- 418611c84d00 14.0 landed
-
Move some code from src/bin/scripts to src/fe_utils to permit reuse.
- e955bd4b6c2b 14.0 landed
-
Factor pattern-construction logic out of processSQLNamePattern.
- 2c8726c4b0a4 14.0 landed
-
Doc: clean up verify_heapam() documentation.
- 4c49d8fc15ee 14.0 landed
-
Fix more portability issues in new amcheck code.
- 321633e17b07 14.0 landed
-
Fix portability issues in new amcheck test.
- 860593ec3bd1 14.0 landed
-
Try to avoid a compiler warning about using fxid uninitialized.
- 8bb0c9770e80 14.0 landed
-
Extend amcheck to check heap pages.
- 866e24d47db1 14.0 landed
-
Adjust walsender usage of xlogreader, simplify APIs
- 850196b610d2 13.0 cited
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited
-
Sanitize line pointers within contrib/amcheck.
- a9ce839a3137 12.0 cited
-
Fix possible sorting error when aborting use of abbreviated keys.
- 008c4135ccf6 10.0 cited