Re: pg_amcheck contrib application
Mark Dilger <mark.dilger@enterprisedb.com>
> On Apr 23, 2021, at 10:31 AM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
>
> I will test your patch and see what differs.
Here are the differences between master and you patch:
UPDATE $toastname SET chunk_seq = chunk_seq + 1000 WHERE chunk_id = $value_id_to_corrupt
- qr/${header}toast value 16459 chunk 0 has sequence number 1000, but expected sequence number 0/,
- qr/${header}toast value 16459 chunk 1 has sequence number 1001, but expected sequence number 1/,
- qr/${header}toast value 16459 chunk 2 has sequence number 1002, but expected sequence number 2/,
- qr/${header}toast value 16459 chunk 3 has sequence number 1003, but expected sequence number 3/,
- qr/${header}toast value 16459 chunk 4 has sequence number 1004, but expected sequence number 4/,
- qr/${header}toast value 16459 chunk 5 has sequence number 1005, but expected sequence number 5/;
+ qr/${header}toast value 16459 index scan returned chunk 1000 when expecting chunk 0/,
+ qr/${header}toast value 16459 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1001 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1002 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1003 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1004 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1005 follows last expected chunk 5/;
UPDATE $toastname SET chunk_seq = chunk_seq * 1000 WHERE chunk_id = $value_id_to_corrupt
- qr/${header}toast value $value_id_to_corrupt chunk 1 has sequence number 1000, but expected sequence number 1/,
- qr/${header}toast value $value_id_to_corrupt chunk 2 has sequence number 2000, but expected sequence number 2/,
- qr/${header}toast value $value_id_to_corrupt chunk 3 has sequence number 3000, but expected sequence number 3/,
- qr/${header}toast value $value_id_to_corrupt chunk 4 has sequence number 4000, but expected sequence number 4/,
- qr/${header}toast value $value_id_to_corrupt chunk 5 has sequence number 5000, but expected sequence number 5/;
-
+ qr/${header}toast value 16460 index scan returned chunk 1000 when expecting chunk 1/,
+ qr/${header}toast value 16460 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 2000 when expecting chunk 1001/,
+ qr/${header}toast value 16460 chunk 2000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 3000 when expecting chunk 2001/,
+ qr/${header}toast value 16460 chunk 3000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 4000 when expecting chunk 3001/,
+ qr/${header}toast value 16460 chunk 4000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 5000 when expecting chunk 4001/,
+ qr/${header}toast value 16460 chunk 5000 follows last expected chunk 5/;
INSERT INTO $toastname (chunk_id, chunk_seq, chunk_data)
(SELECT chunk_id,
10*chunk_seq + 1000,
chunk_data
FROM $toastname
WHERE chunk_id = $value_id_to_corrupt)
- qr/${header}toast value $value_id_to_corrupt chunk 6 has sequence number 1000, but expected sequence number 6/,
- qr/${header}toast value $value_id_to_corrupt chunk 7 has sequence number 1010, but expected sequence number 7/,
- qr/${header}toast value $value_id_to_corrupt chunk 8 has sequence number 1020, but expected sequence number 8/,
- qr/${header}toast value $value_id_to_corrupt chunk 9 has sequence number 1030, but expected sequence number 9/,
- qr/${header}toast value $value_id_to_corrupt chunk 10 has sequence number 1040, but expected sequence number 10/,
- qr/${header}toast value $value_id_to_corrupt chunk 11 has sequence number 1050, but expected sequence number 11/,
- qr/${header}toast value $value_id_to_corrupt was expected to end at chunk 6, but ended at chunk 12/;
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1000 when expecting chunk 6/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1010 when expecting chunk 1001/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1010 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1020 when expecting chunk 1011/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1020 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1030 when expecting chunk 1021/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1030 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1040 when expecting chunk 1031/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1040 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1050 when expecting chunk 1041/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1050 follows last expected chunk 5/;
—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Commits
-
amcheck: Improve some confusing reports about TOAST problems.
- 50529e5b4e39 14.0 landed
-
amcheck: Reword some messages and fix an alignment problem.
- 9acaf1a62197 14.0 landed
-
amcheck: fix multiple problems with TOAST pointer validation
- ec7ffb8096e8 14.0 landed
-
amcheck: Remove duplicate XID/MXID bounds checks.
- 4573f6a9af6e 14.0 landed
-
amcheck: Fix verify_heapam's tuple visibility checking rules.
- 3b6c1259f9ca 14.0 landed
-
nbtree VACUUM: Cope with buggy opclasses.
- 5b861baa550a 14.0 landed
-
Improve pg_amcheck's TAP test 003_check.pl.
- 87d90ac61fa1 14.0 landed
-
Fix a confusing amcheck corruption message.
- 4078ce65a0f7 14.0 landed
-
Doc: add note about how to run the pg_amcheck regression tests.
- 58f57490facd 14.0 cited
-
In pg_amcheck tests, don't depend on perl's Q/q pack code.
- 945d2cb7d025 14.0 landed
-
pg_amcheck: Keep trying to fix the tests.
- 9e294d0f34d6 14.0 landed
-
pg_amcheck: Try to fix still more test failures.
- 24189277f6ff 14.0 landed
-
Try to avoid apparent platform-dependency in IPC::Run
- f371a4cdba6d 14.0 landed
-
Fix portability issues in pg_amcheck's 004_verify_heapam.pl.
- 661125612706 14.0 landed
-
Try to fix compiler warnings.
- d60e61de4fb4 14.0 landed
-
Add pg_amcheck, a CLI for contrib/amcheck.
- 9706092839db 14.0 landed
-
Refactor and generalize the ParallelSlot machinery.
- f71519e545a3 14.0 landed
-
Remove old-style VACUUM FULL (which was known for a little while as
- 0a469c87692d 9.0.0 cited